{"version":3,"sources":["../../shared-components/chart/d3dat-slider.js","../../shared-components/common/common.js","../../shared-components/chart/d3dat.js","../../shared-components/common/angular-base64-upload.js","../../shared-components/common/common.module.js","../../shared-components/common/tooltip.directive.js","../../shared-components/common/modal-dialog.directive.js","../../shared-components/common/event-name.service.js","../../shared-components/common/input-error.directive.js","../../shared-components/common/base-http.service.js","../../shared-components/common/slider.directive.js","../../shared-components/common/phone-number.filter.js","../../shared-components/common/masking-overlay.directive.js","../../shared-components/location/location.module.js","../../shared-components/location/base-validator.service.js","../../shared-components/location/location-input.directive.js","../../shared-components/location/location.service.js","../../shared-components/location/search-validator.service.js","../../shared-components/equipment/equipment.module.js","../../shared-components/equipment/equipment-select.directive.js","../../shared-components/equipment/equipment.service.js","../../shared-components/equipment/select2-custom.js","../../shared-components/company/company.module.js","../../shared-components/company/company-detail.directive.js","../../shared-components/company/company.service.js","../../shared-components/session/session.module.js","../../shared-components/session/login.directive.js","../../shared-components/session/timeout.directive.js","../../../scripts/ng-file-upload-all.js","../../../scripts/jquery.anythingslider.js"],"names":["detectIE","browserInfo","getBrowserUseragentInfo","name","$","addClass","userBrowser","uagent","navigator","userAgent","toLowerCase","match","chrome","test","firefox","msie","edge","safari","opr","version","x","RegExp","openWindow","url","width","height","title","params","windowRef","closed","window","open","browser","mozilla","close","focus","location","resolveUrl","replace","parseJsonDate","value","_","isDate","dateTime","split","dateParts","year","parseInt","month","day","length","Date","timeParts","hour","minute","second","objectToQueryString","obj","parts","i","hasOwnProperty","push","encodeURIComponent","join","parseQueryString","result","search","$0","$1","$2","$3","extendNonArrayProperties","dest","src","key","isArray","getDaysBackText","daysBack","lookBackDaysText","d3dat","lib","slider","_slider","selection","each","self","this","$log","debug","error","info","log","warn","axis","d3","svg","orient","axisOrient","scale","domain","div","select","classed","drag","behavior","on","lastDragTimeMs","valueOf","dispatch","slideend","event","sliderHandle","append","attr","stopPropagation","call","onClickHorizontal","sliderLength","style","widthAdjustment","formatPercent","onDragHorizontal","createAxis","disableOrEnableSlider","dom","axisScale","copy","rangePoints","g","margin","pos","Math","max","min","offsetX","layerX","moveHandle","invert","stepValue","nearestTick","click","disable","newValue","currentValue","oldPos","newPos","slide","sourceEvent","transition","styleTween","interpolate","duration","val","alignValue","snap","valModStep","step","abs","ticks","dist","map","d","index","r","range","rangeExtent","sliderValues","format","arguments","ordinal","rebind","undefined","_arrayBufferToBase64","buffer","binary","bytes","Uint8Array","len","byteLength","String","fromCharCode","btoa","angular","module","directive","$window","$q","isolateScope","onChange","parser","FILE_READER_EVENTS","restrict","require","scope","link","elem","attrs","ngModel","_attachHandlerForEvent","eventName","handler","fReader","file","fileObject","e","rawFiles","fileObjects","_readerOnLoad","promise","target","base64","when","then","fileObj","_setViewValue","onload","_attachEventHandlers","newVal","multiple","$setViewValue","isFunction","$validate","v","full","$viewValue","_maxsize","_minsize","_maxnum","_minnum","_readFiles","reader","FileReader","filetype","type","filename","filesize","size","readAsArrayBuffer","_onChange","maxnum","valid","$setValidity","minnum","maxsize","parseFloat","minsize","$setPristine","files","$parsers","datSharedComponentGlobals","eventNames","GlobalUnhandledError","Unauthorized401","document","ready","console","str","err","Number","prototype","round","precision","factor","pow","mod","n","floor","incrementalRound","roundIncrement","roundUp","tenthRemainder","base","roundedTenth","capitalize","toUpperCase","slice","toLowerCaseFirstChar","formatDate","s","getMonth","date","getDate","getFullYear","toString","Array","sortBy","functionsOrPropertyNames","reverse","compare","a","b","aVal","bVal","p","direction","sort","bind","removeItem","item","splice","datTooltip","transclude","for","showCloseLink","position","openOn","options","tooltipClass","toggleDisplayOn","removeOnClose","closeAllOnOpen","templateUrl","controller","controllerAs","TooltipCtrl","$scope","$element","$timeout","eventNameService","activate","tooltip","Drop","content","classes","constrainToWindow","tetherOptions","remove","isUndefined","$watch","toggleDisplayOnHandler","$on","destroyCleanup","toolTip","reposition","repositionToolTip","closeTooltip","m","$inject","datModalDialog","show","hideHeader","cssClass","clickOutsideClosesModal","closeConfirmFn","closeConfirmButtonText","modalDialogLinkFn","ModalDialogCtrl","_$document_","moveElementToBody","appendTo","outsideModalClicked","closeModal","initiateCloseModal","closeConfirmInnerFn","closeConfirmMessage","closeConfirmVisible","isShown","$root","$broadcast","modalDialog","cancelClose","reset","$document","firstTabbable","find","_element","registerElementEventHandlers","trapFocus","element","keyDownHandler","tabbable","lastTabbable","which","originalEvent","isAlreadyHandled","shiftKey","preventDefault","is","contains","off","factory","rateCalculator","PreferencesUpdated","tabs","selected","companyDetail","modalClosed","addedOfficeFilter","removedOfficeFilter","equipmentSelect","equipmentParsed","emptySearchInitialized","closeAndOpen","sessionLogin","loginSuccessful","loginFailed","tabbedModalDialog","openTab","validationStateChanged","changeView","openModal","forceCloseModal","datInputError","linkFunction","hideOnBlur","$observe","datInputErrorFor","$input","removeClass","baseHttpService","$http","post","path","model","successFunc","errorFunc","execute","put","get","get2","deleteFunc","id","config","getBypassErrorConfig","delete","success","data","status","headers","handleSuccess","handleError","func","bypassErrorsInterceptor","datSlider","_$log_","_eventNameService_","values","startingValue","changedToValue","disableSlider","template","sliderEventSlideEnd","evt","sliderEventNotification","sliderEventClick","onNewValue","sliderId","logAndThrowError","valuesArray","$eval","previous","errorMsg","filter","phoneNumber","datMaskingOverlay","toggleDisplay","showSpinner","largeSpinner","MaskingOverlayCtrl","locationService","validationResult","isValid","isUnusual","message","setInvalid","msg","setRequired","required","isEmpty","trim","baseValidator","clearValidation","field","validator","invalid","resolveLocation","locationType","trimmedValue","includeAreas","fnSuccess","fnError","encodedValue","endPointUrl","validateLocation","isOrigin","deferred","defer","resolve","response","locationResolution","handle","isArea","enteredValue","coordinates","formattedLocation","makeValidationResultForGivenLocation","datLocationInput","_$rootScope_","_$parse_","_$timeout_","_locationService_","_searchValidator_","$rootScope","$parse","searchValidator","fieldName","placeHolder","tabIndex","tryApplyStickyValue","getValidateLocationPromise","allowEmptyLocation","allowAreaLocationType","disableLocation","handleLocationChange","validateLocationPromise","criteria","ltrim","verifyLocation","searchCriteria","validateField","locationValid","updateFormFieldsPlaceholderText","reject","initializeAutoComplete","inputElement","autocomplete","autoFocus","delay","source","suggestions","minLength","change","ui","handleItemChanged","debugDumpModel","mock","dump","debugVerbose","isChanged","inputFocusHandler","updateModel","$apply","hasClass","keyCode","originHandle","isDefined","originIsArea","destinationHandle","destinationIsArea","$safeApply","allowEmptyValue","allowAreas","validateAll","searchModel","originValidation","initialize","destinationValidation","all","getOriginPromise","getDestinationPromise","validationResults","isLocationsValid","handleLocations","updateLocationValidationModel","searchValidationModel","getFieldPromise","origin","destination","handleLocation","allowEmptyField","originValidationResult","destinationValidationResult","validationModel","datEquipmentSelect","_equipmentService_","equipmentService","compile","pre","preLink","postLink","initializeEquipment","getEquipmentSetData","excludeClass","equipment","getEquipmentClasses","types","getEquipmentTypes","classMode","isClassMode","isDualMode","cached","onEquipmentParsed","onEmptySearchInitialized","onCloseAndOpen","select2","openEquipmentDropdown","inputId","$id","typesOptions","getTypeOptions","classesOptions","getClassOptions","toggleTabindex","selectTabindex","divContainerPrevScrollPosition","typeSelectInputSelector","classSelectInputSelector","toggle","$emit","filterButtonText","parents","scroll","divContainerCurrentScrollTopPos","scrollTop","$watchCollection","assign","pluck","equipmentOptions","equipmentValidation","disableEquipmentSelect","getSelect2BaseOptions","tokenSeparators","selectOnBlur","placeholder","query","searchTypes","disableAutoSelectFirstOptionWhenEmpty","createSearchChoice","term","currentTypeCodes","selectedEquipment","createTypeItem","sortResults","sortTypes","searchClasses","currentClassCodes","createClassItem","sortClasses","openEquipmentDropdownForSelectedMode","currentSelectFilterId","setTimeout","prop","getValidDoubleTerms","termItem1","typeTerm","termItem2","termIndex1","validFirstCharsTypes","indexOf","termIndex2","validSecondCharsTypes","createTypeTerms","validSingleCharTypes","createCompositeItem","compositeTerm","compositeId","forEach","text","areValidTerms","terms","termItem","validTerms","validCharsForClasses","createClassTerms","uniqueTerms","classTerm","findByCode","code","array","equipObj","findByCodesArray","codesArray","results","getEquipmentSet","getEquipmentSetDataPromise","equipmentSetData","classObj","callback","codes","dropdownCssClass","dropdownAutoWidth","closeOnSelect","allowClear","openOnEnter","closeOnTabOut","formatSelection","formatResult","container","re","finalResults","unmatched","concat","items","firstLetter","firstLetterMatches","matches","compositeItem","fn","each2","extend","c","j","l","context","jQuery","equal","measureScrollbar","$template","MEASURE_SCROLLBAR_TEMPLATE","dim","clientWidth","clientHeight","constructor","splitVal","string","separator","getSideBorderPadding","outerWidth","installKeyUpChangeEvent","removeData","trigger","installFilteredMouseMove","lastpos","lastMousePosition","pageX","y","pageY","debounce","quietMillis","ctx","timeout","args","clearTimeout","apply","thunk","formula","evaluated","installDebouncedScroll","threshold","notify","$el","activeElement","el","setSelectionRange","createTextRange","collapse","getCursorInfo","offset","selectionStart","selectionEnd","sel","createRange","moveStart","killEvent","killEventImmediately","stopImmediatePropagation","measureTextWidth","sizer","currentStyle","getComputedStyle","createElement","css","left","top","display","fontSize","fontFamily","fontStyle","fontWeight","letterSpacing","textTransform","whiteSpace","syncCssClasses","adapter","adapted","replacements","markMatch","markup","escapeMarkup","tl","substring","ajax","requestSequence","ajaxUrl","requestNumber","transport","ajaxDefaults","deprecated","cache","jsonpCallback","dataType","page","abort","local","dataText","tmp","dataItem","process","t","filtered","datum","collection","group","children","childDatum","matcher","tags","isFunc","isObject","checkFormatter","formatter","formatterName","Error","evaluate","countResults","count","defaultTokenizer","input","selectCallback","opts","token","original","dupe","clazz","SuperClass","methods","parent","Select2","KEY","AbstractSelect2","SingleSelect2","MultiSelect2","nextUid","scrollBarDimensions","TAB","ENTER","ESC","SPACE","LEFT","UP","RIGHT","DOWN","SHIFT","CTRL","ALT","PAGE_UP","PAGE_DOWN","HOME","END","BACKSPACE","DELETE","isArrow","k","isControl","metaKey","isFunctionKey","counter","Object","init","disabled","readonly","resultsSelector","prepareOpts","destroy","createContainer","containerId","containerSelector","body","closest","adaptContainerCssClass","containerCss","containerCssClass","elementTabIndex","before","dropdown","resultsPage","initContainer","highlightUnderEvent","loadMoreIfNeeded","mousewheel","delta","deltaX","deltaY","scrollHeight","updateResults","selectHighlighted","initSelection","monitorSource","maximumInputLength","enable","autofocus","propertyObserver","tabindex","optionToData","locked","idKey","tagName","populateResults","populate","depth","selectable","compound","node","label","innerContainer","formatted","formatResultCssClass","html","defaults","firstChild","more","elm","getPlaceholder","not","sync","adaptDropdownCssClass","mutationCallback","mutations","WebKitMutationObserver","observe","attributes","subtree","triggerSelect","Event","object","isDefaultPrevented","triggerChange","details","blurOnChange","blur","isInterfaceEnabled","enabledInterface","enableInterface","enabled","_enabled","_readonly","toggleClass","opened","positionDropdown","bodyOffset","above","resultsListNode","$dropdown","outerHeight","dropHeight","viewPortRight","scrollLeft","viewportBottom","dropTop","dropLeft","enoughRoomBelow","enoughRoomAbove","dropWidth","enoughRoomOnRight","aboveNow","dropdownCss","shouldOpen","clearDropdownAlignmentPreference","opening","externalClickTarget","cid","resize","last","detach","noFocus","removeAttr","ensureHighlightVisible","that","add","hide","empty","clearSearch","getMaximumSelectionSize","maximumSelectionSize","child","hb","rb","highlight","findHighlightableChoices","moveHighlight","choices","choice","countSelectableResults","loadMorePadding","postprocessResults","formatLoadMore","tokenize","initial","postRender","render","lastTerm","showSearchInput","maxSelSize","formatSelectionTooBig","minimumInputLength","formatInputTooShort","showSearch","formatInputTooLong","formatSearching","def","unshift","formatNoMatches","cancel","focusSearch","highlighted","onSelect","initContainerWidth","resolveContainerWidth","initDropdownResultsHeight","class","focusser","isFocused","clear","setPlaceholder","removed","updateSelection","is_match","noop","first","minimumResultsForSearch","old","oldData","added","ids","grep","ordered","selectChoice","selector","searchContainer","_this","keydowns","prev","next","selectedChoice","unselect","altKey","ctrlKey","resizeSearch","clearPlaceholder","maxWidth","getMaxSearchWidth","getVal","addSelectedChoice","tokenizer","compositItem","compositeIds","compositeTexts","enableChoice","enabledItem","disabledItem","replaceWith","fadeOut","dequeue","insertBefore","setVal","minimumWidth","containerLeft","searchWidth","sideBorderPadding","unique","buildChangeDetails","current","onSortStart","onSortEnd","allowedMethods","valueMethods","limit","pageNumber","replace_map","\\","&","<",">","\"","'","/","util","abstract","single","multi","datCompanyDetail","_companyService_","companyService","companyDetails","searchType","canPreferOrBlock","allowPreferOrBlock","toggleModal","clickPreferred","clickBlocked","officeFilter","addOrRemoveOfficeFilter","officeFilterAction","combinedOfficeId","removeOfficeFilter","addOfficeFilter","officeId","action","errorResponse","dumpErrorResponse","datSessionLogin","productName","productImageClass","forgotUsernameCallback","forgotPasswordCallback","loginCallbackPromise","forgotUsername","forgotPassword","login","isLoggingIn","loginErrorMessage","finally","datSessionTimeout","showTimeoutUi","onloginSuccessful","patchXHR","fnName","newFn","XMLHttpRequest","redefineProp","xhr","defineProperty","FileAPI","shouldLoad","FormData","forceLoad","initializeUploadListener","__listeners","upload","origAddEventListener","addEventListener","orig","__url","__origError","h","__fileApiXHR","getResponseHeader","getAllResponseHeaders","header","Function","__requestHeaders","__isFileAPIShim","formData","jsonp","complete","fileApiXHR","isString","__completed","load","loaded","__loaded","total","__total","lengthComputable","loadend","statusText","resp","responseText","onreadystatechange","progress","noContentTimeout","hasFlash","__isFileAPIBlobShim","Blob","isInputTypeFile","ActiveXObject","mimeTypes","getOffset","offsetParent","offsetLeft","offsetTop","html5","jsUrl","basePath","script","allScripts","getElementsByTagName","jsPath","staticPath","setAttribute","appendChild","ngfFixIE","fileElem","changeFn","fixInputStyle","unbind","fileApiChangeFn","offsetWidth","offsetHeight","getFiles","__files_","disableFileInput","loadStarted","listeners","removeEventListener","dispatchEvent","list","onabort","onerror","onloadstart","onloadend","onprogress","constructEvent","listener","readAsBinaryString","readAsDataURL","readAsText","setRequestHeader","ngFileUpload","service","sendHttp","notifyProgress","progressFunc","getNotifyEvent","_start","resumeSupported","_file","uploadWithAngular","_chunkSize","_finished","_end","method","_deferred","disableProgress","__setXHR_","__XHR","xhrFn","resumeSizeUrl","resumeSizeResponseReader","resumeSize","pause","origXhrFn","isResumeSupported","rename","ngfName","jsonBlob","JSON","stringify","blob","_ngfBlob","json","toJson","isFile","flashId","toResumeFile","addFieldToFormData","toISOString","_fileKey","$$ngfCircularDetection","objectKey","arrayKey","digestConfig","translateScalars","resumeChunkSize","transformRequest","fields","formDataAppender","_isDigested","http","ArrayBuffer","setDefaults","$compile","UploadResize","param","attrGetter","isResizeSupported","checkCallback","resizedFile","f","$error","$errorParam","quality","handleKeep","prevFiles","dupFiles","keep","getAttrWithDefaults","attrVal","shouldUpdateOn","modelOptions","updateOn","fileChange","noDelay","update","invalidFiles","newFiles","isSingleModel","applyModelValidation","$ngfModelChange","$files","$file","$newFiles","$duplicateFiles","$invalidFiles","$event","invalidModel","$modelValue","$$ngfPrevFiles","keepResult","validate","allowInvalid","valids","invalids","prevFile","URL","blobUrl","revokeObjectURL","Upload","isDelayedClickSupported","ua","androidFixMinorVersion","linkFileSelect","fileChangeAttr","fileList","bindAttrToFileInput","attribute","createFileInput","generatedElems","ref","clickHandler","handleTouch","resetModel","touches","changedTouches","initialTouchStartY","clientY","currentLocation","ie10SameFileSelectFix","parentNode","clone","registerModelChangeValidator","unwatches","$$observers","accept","appVersion","$formatters","unwatch","getTagType","linkFileDirective","directiveName","resizeParams","isBackground","constructDataUrl","disallowObjectUrl","dataUrl","$ngfDataUrl","$ngfBlobUrl","UploadBase","base64DataUrl","urls","ff","$$ngfDataUrlPromise","$$ngfBlobUrlPromise","webkitURL","createObjectURL","fileReader","$compileProvider","imgSrcSanitizationWhitelist","aHrefSanitizationWhitelist","UploadDataUrl","$sce","trustedUrl","trustAsResourceUrl","$ngfDataUrlFilterInProgress","globStringToRegex","regexp","excludes","markModelAsDirty","$dirty","$setDirty","validatePattern","pattern","exclude","$ngfValidations","validation","validateSync","validatorVal","dName","substr","validateAsync","asyncFn","thisPendings","hasError","pendings","cons","imageDimensions","ratio","xIndex","mediaDuration","$ngfWidth","$ngfHeight","$ngfDimensionPromise","img","checkLoadError","$ngfDuration","$ngfDurationPromise","UploadValidate","calculateAspectRatioFit","srcWidth","srcHeight","maxHeight","imagen","canvasElement","imagenElement","dimensions","getContext","drawImage","toDataURL","dataUrltoBlob","dataurl","arr","mime","bstr","atob","u8arr","charCodeAt","linkDrop","$location","isDisabled","calculateDragOverClass","dClass","dragOverDelay","dataTransfer","extractFiles","allowDir","traverseFileTree","entry","isDirectory","filePath","dirReader","createReader","entries","processing","readEntries","protocol","webkitGetAsEntry","getAsFile","delays","waitForProcess","available","dropAvailable","actualDragOverClass","leaveTimeout","effectAllowed","dropEffect","$isDragging","$class","getData","responseType","arrayBufferView","clipboard","clipboardData","win","doc","anythingSlider","o","wrap","initialized","onBeforeInitialize","$wrapper","theme","$outer","$win","$controls","$nav","$startStop","buildStartStop","buildNavigation","appendControlsTo","appendNavigationTo","appendStartStopTo","runTimes","regex","makeActive","flag","autoPlayLocked","autoPlay","playing","slideshow","hovered","panelSize","currentPage","targetPage","startPanel","changeBy","mode","vertical","showMultiple","infiniteSlides","adj","adjustMultiple","playRtl","buildAutoPlay","buildArrows","buildNextBackButtons","$lastPage","$targetPage","$currentPage","expand","aspectRatio","updateSlider","checkResize","easing","pauseOnHover","hover","clearTimer","startStop","slideControls","keyup","enableKeyboard","goForward","goBack","gotoHash","gotoPage","triggers","onSlideComplete","navTextVisible","$items","pages","dir","navigationSize","panel","indx","$forward","$back","prepend","addBack","setDimensions","resizeContents","getDim","setCurrentPage","eq","resumeOnVisible","opacity","visibility","siblings","fadeIn","$li","navigationFormatter","clickControls","enableNavigation","backText","after","forwardText","navWidths","ceil","navLeft","navWidth","end","navWindow","w","animate","queue","animationTime","clickBackArrow","enableArrows","clickForwardArrow","appendBackTo","appendForwardTo","arrowWidth","arrowRight","arrowLeft","stopText","startText","clickSlideshow","enableStartStop","autoPlayDelayed","stopTimer","vis","hidden","webkitHidden","mozHidden","msHidden","resizeTimer","lastDim","outerPad","innerWidth","innerHeight","fullsize","pw","ph","arW","arH","isNaN","autoplay","rtl","allowRapidChange","time","stopAtEnd","isVideoPlaying","exactPage","toggleControls","setNavigation","stop","fadeIt","endAnimation","delayBeforeAnimate","hashTags","setHash","resumeDelay","toOpacity","fadeTo","move","hash","t1","t2","op","sign","toggleArrows","right","paused","timer","clearInterval","setInterval","resumeOnVideoEnd","anySlide"],"mappings":"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","file":"Onboarding-sharedcomponents-bundle.js","sourcesContent":["/*\n D3.js Slider\n Inspired by jQuery UI Slider\n Copyright (c) 2013, Bjorn Sandvik - http://blog.thematicmapping.org\n BSD license: http://opensource.org/licenses/BSD-3-Clause\n */\n\n// April/May 2015.\n// The code (from https://github.com/turban/d3.slider) was simplified and some bugs fixed.\n// The original copyright notice is retained above (with the link to the BSD license permitting use\n// of and modification of this code).\n\n'use strict';\n\nvar d3dat = (function (lib) {\n\n\tlib.slider = function () {\n\t\tvar step = 0.01, axis, axisOrient = 'top', margin = 30, sliderValues = [], value, snap = true,\n\t\t\tscale, $log, axisScale, dispatch = d3.dispatch('slide', 'slideend', 'click'), formatPercent = d3.format('.2%'),\n\t\t\tsliderHandle, sliderLength, widthAdjustment, disable = false, self, lastDragTimeMs;\n\n\t\tfunction _slider(selection) {\n\t\t\tselection.each(function () {\n\t\t\t\tself = this;\n\n\t\t\t\tif (!$log) {\n\t\t\t\t\t$log = {};\n\t\t\t\t\t$log.debug = $log.error = $log.info = $log.log = $log.warn = function () { }; // no-op\n\t\t\t\t}\n\n\t\t\t\taxis = d3.svg.axis().orient(axisOrient);\n\t\t\t\tvalue = value || scale.domain()[0];\n\t\t\t\tvar div = d3.select(this).classed('d3-slider d3-slider-horizontal', true);\n\t\t\t\tvar drag = d3.behavior.drag();\n\t\t\t\tdrag.on('dragend', function () {\n\t\t\t\t\tlastDragTimeMs = new Date().valueOf();\n\t\t\t\t\tdispatch.slideend(d3.event, value);\n\t\t\t\t});\n \n\t\t\t\tsliderHandle = div.append('a')\n\t\t\t\t\t.classed('d3-slider-handle', true)\n\t\t\t\t\t.attr('xlink:href', '#') \n\t\t\t\t\t.on('click', stopPropagation)\n\t\t\t\t\t.call(drag);\n\n\t\t\t\tdiv.on('click', onClickHorizontal);\n\n\t\t\t\tsliderLength = parseInt(div.style('width'), 10);\n\n\t\t\t\twidthAdjustment = 7/sliderLength;\n\t\t\t\tsliderHandle.style('width', formatPercent(scale(value) + widthAdjustment));\n\t\t\t\tdrag.on('drag', onDragHorizontal);\n \n\t\t\t\tcreateAxis(div);\n\n\t\t\t\tdisableOrEnableSlider();\n\t\t\t});\n\t\t}\n\n\t\t// Getter/setter functions\n\t\t_slider.margin = function (_) {\n\t\t\tif (!arguments.length) return margin;\n\t\t\tmargin = _;\n\n\t\t\treturn _slider;\n\t\t};\n\n\t\t_slider.sliderValues = function (_) {\n\t\t\tif (!arguments.length) return sliderValues;\n\t\t\tsliderValues = _;\n\t\t\tscale = d3.scale.ordinal().domain(sliderValues).rangePoints([0, 1], 0.5);\n\n\t\t\treturn _slider;\n\t\t};\n\n\t\t_slider.value = function (_) {\n\t\t\tif (!arguments.length) return value;\n\t\t\tif (value) {\n\t\t\t\tmoveHandle(stepValue(_));\n\t\t\t}\n\t\t\tvalue = _;\n\n\t\t\treturn _slider;\n\t\t};\n\n\t\t_slider.snap = function (_) {\n\t\t\tif (!arguments.length) return snap;\n\t\t\tsnap = _;\n\n\t\t\treturn _slider;\n\t\t};\n\n\t\t_slider.axisOrient = function (_) {\n\t\t\tif (!arguments.length) return axisOrient;\n\t\t\taxisOrient = _;\n\n\t\t\treturn _slider;\n\t\t};\n\n\t\t_slider.log = function (_) {\n\t\t\tif (!arguments.length) return $log;\n\t\t\t$log = _;\n\n\t\t\treturn _slider;\n\t\t};\n\n\t\t_slider.disable = function (_) {\n\t\t\tif (!arguments.length) return disable;\n\t\t\tdisable = _;\n\t\t\tdisableOrEnableSlider();\n\n\t\t\treturn _slider;\n\t\t};\n\n\t\td3.rebind(_slider, dispatch, 'on');\n\n\t\treturn _slider;\n\n\t\t/////////////////////////////\n\n\t\tfunction createAxis(dom) { \n\t\t\taxisScale = scale.copy().rangePoints([0, sliderLength], 0.5);\n\t\t\taxis.scale(axisScale);\n \n\t\t\tvar svg = dom.append('svg')\n\t\t\t\t.classed('d3-slider-axis d3-slider-axis-' + axis.orient(), true)\n\t\t\t\t.on('click', stopPropagation);\n\n\t\t\tvar g = svg.append('g');\n \n\t\t\tsvg.style('margin-left', -margin + 'px');\n\n\t\t\tsvg.attr({\n\t\t\t\twidth: sliderLength + margin * 2,\n\t\t\t\theight: margin\n\t\t\t});\n\n\t\t\tif (axis.orient() === 'top') {\n\t\t\t\tsvg.style('top', -margin + 'px');\n\t\t\t\tg.attr('transform', 'translate(' + margin + ',' + margin + ')');\n\t\t\t} else { // bottom\n\t\t\t\tg.attr('transform', 'translate(' + margin + ',0)');\n\t\t\t}\n\n\t\t\tg.call(axis);\n\t\t}\n\n\t\tfunction onClickHorizontal() {\n\t\t\t//$log.debug(\"onClickHorizontal\");\n\t\t\tvar pos = Math.max(0, Math.min(sliderLength, d3.event.offsetX || d3.event.layerX));\n\t\t\tmoveHandle(scale.invert ?\n\t\t\t\tstepValue(scale.invert(pos / sliderLength))\n\t\t\t\t: nearestTick(pos / sliderLength));\n\t\t\t// LAN-437. Because of the way we're doing the styling on the slider handle and we need to have a solid \"fill\" effect all the way to the left, then\n\t\t\t// we must allow the click to go through the thumb (which includes the filled in area). Thus, we can get a click event fired at the same time as\n\t\t\t// the thumb getting dragged. To prevent that we use the simple scheme below.\n\t\t\tif (!lastDragTimeMs || new Date().valueOf() - lastDragTimeMs > 500) {\n\t\t\t\tdispatch.click(d3.event, value);\n\t\t\t}\n\t\t\telse {\n\t\t\t\t$log.debug('d3 slider component: Will not fire click event');\n\t\t\t}\n\t\t}\n\n\t\tfunction onDragHorizontal() {\n\t\t\tif (disable) return;\n\t\t\t//$log.debug(\"onDragHorizontal\");\n\t\t\tvar pos = Math.max(0, Math.min(sliderLength, d3.event.x));\n\t\t\tmoveHandle(scale.invert ?\n\t\t\t\tstepValue(scale.invert(pos / sliderLength))\n\t\t\t\t: nearestTick(pos / sliderLength));\n\t\t}\n\n\t\tfunction stopPropagation() {\n\t\t\td3.event.stopPropagation();\n\t\t}\n \n\t\tfunction moveHandle(newValue) {\n\t\t\tvar currentValue = value,\n\t\t\t\toldPos = formatPercent(scale(stepValue(currentValue)) + widthAdjustment),\n\t\t\t\tnewPos = formatPercent(scale(stepValue(newValue)) + widthAdjustment),\n\t\t\t\tposition = 'width';\n\t\t\tif (oldPos !== newPos) {\n\n\t\t\t\tvalue = newValue;\n\n\t\t\t\tif (d3.event) {\n\t\t\t\t\tdispatch.slide(d3.event.sourceEvent || d3.event, value);\n\t\t\t\t}\n \n\t\t\t\tsliderHandle.transition()\n\t\t\t\t\t.styleTween(position, function () { return d3.interpolate(oldPos, newPos); })\n\t\t\t\t\t.duration(250);\n\t\t\t}\n\t\t}\n \n\t\tfunction stepValue(val) {\n\n\t\t\tif (val === scale.domain()[0] || val === scale.domain()[1]) {\n\t\t\t\treturn val;\n\t\t\t}\n\n\t\t\tvar alignValue = val;\n\t\t\tif (snap) {\n\t\t\t\talignValue = nearestTick(scale(val));\n\t\t\t} else {\n\t\t\t\tvar valModStep = (val - scale.domain()[0]) % step;\n\t\t\t\talignValue = val - valModStep;\n\n\t\t\t\tif (Math.abs(valModStep) * 2 >= step) {\n\t\t\t\t\talignValue += (valModStep > 0) ? step : -step;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn alignValue;\n\t\t}\n \n\t\tfunction nearestTick(pos) {\n\t\t\tvar ticks = scale.ticks ? scale.ticks() : scale.domain();\n\t\t\tvar dist = ticks.map(function (d) { return pos - scale(d); });\n\t\t\tvar i = -1,\n\t\t\t\tindex = 0,\n\t\t\t\tr = scale.ticks ? scale.range()[1] : scale.rangeExtent()[1];\n\t\t\tdo {\n\t\t\t\ti++;\n\t\t\t\tif (Math.abs(dist[i]) < r) {\n\t\t\t\t\tr = Math.abs(dist[i]);\n\t\t\t\t\tindex = i;\n\t\t\t\t}\n\t\t\t} while (dist[i] > 0 && i < dist.length - 1);\n\n\t\t\t//$log.debug(\"nearestTick returns \" + ticks[index]);\n\t\t\treturn ticks[index];\n\t\t}\n\n\t\tfunction disableOrEnableSlider() {\n\t\t\tif (!self) return;\n\t\t\tvar div = d3.select(self);\n\t\t\tdiv.style('pointer-events', disable ? 'none' : 'auto');\n\t\t\tdiv.classed('d3-slider-disabled', disable);\n\t\t}\n\t};\n\n\treturn lib;\n\n}(d3dat || {}));\n","///////////////////////////////////////////////////////////////\n// Basic JavaScript helpers\n\n// Use this object via expando properties for globals within the shared components area.\nvar datSharedComponentGlobals = {};\n\ndatSharedComponentGlobals.eventNames = {\n\tGlobalUnhandledError: 'global.unhandled.error',\n\tUnauthorized401: 'unauthorized.401'\n};\n\n\n\nfunction detectIE() {\n\t'use strict';\n\tvar browserInfo = getBrowserUseragentInfo();\n\tif (browserInfo && browserInfo.name === 'msie' || browserInfo.name === 'edge') {\n\t\t$('html').addClass('ie');\n\t}\n}\n\n$(document).ready(detectIE());\n\nfunction getBrowserUseragentInfo() {\n\tvar userBrowser = {};\n\tvar uagent = navigator.userAgent.toLowerCase();\n\tvar match = '';\n\n\tuserBrowser.chrome = /webkit/.test(uagent) && /chrome/.test(uagent) && !/edge/.test(uagent);\n\tuserBrowser.firefox = /mozilla/.test(uagent) && /firefox/.test(uagent);\n\tuserBrowser.msie = /msie/.test(uagent) || /trident/.test(uagent);\n\tuserBrowser.edge = /edge/.test(uagent);\n\tuserBrowser.safari = /safari/.test(uagent) && /applewebkit/.test(uagent) && !/chrome/.test(uagent);\n\tuserBrowser.opr = /mozilla/.test(uagent) && /applewebkit/.test(uagent) && /chrome/.test(uagent) && /safari/.test(uagent) && /opr/.test(uagent);\n\n\tuserBrowser.version = '';\n\tuserBrowser.name = '';\n\n\tfor (var x in userBrowser) {\n\t\tif (userBrowser[x]) {\n\t\t\tuserBrowser.name = x;\n\t\t\t// microsoft is \"special\"\n\t\t\tmatch = uagent.match(new RegExp('(' + (x === 'msie' ? 'msie|edge' : x) + ')( |\\/)([0-9]+)'));\n\t\t\tif (match) {\n\t\t\t\tuserBrowser.version = match[3];\n\t\t\t} else {\n\t\t\t\tmatch = uagent.match(new RegExp('rv:([0-9]+)'));\n\t\t\t\tuserBrowser.version = match ? match[1] : '';\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn {\n\t\tname: userBrowser.name,\n\t\tversion: userBrowser.version\n\t};\n}\n\n\nif (typeof window.console === 'undefined') {\n\t// Create a fake console object if none exists. In IE9 window.console is only available when dev tools are open.\n\t// http://stackoverflow.com/questions/5472938/does-ie9-support-console-log-and-is-it-a-real-function#answer-5473193\n\twindow.console = { log: function(str) {}, error: function(err) {} };\n}\n\n// TODO: review and refactor the way we open help and chat windows (make a directive?)\nfunction openWindow(url, width, height) {\n\tvar title = 'Help';\n\tvar params = 'width=' + width + ', height=' + height + ', scrollbars=1';\n\n\tif (windowRef != null && !windowRef.closed) {\n\t\tif ($.browser.mozilla) {\n\t\t\twindowRef.close();\n\t\t\twindowRef = window.open(url, title, params);\n\t\t} else {\n\t\t\twindowRef.focus();\n\t\t\twindowRef.location = url;\n\t\t}\n\t} else {\n\t\twindowRef = window.open(url, title, params);\n\t}\n\n\treturn windowRef;\n}\n\nfunction resolveUrl(url) {\n\t//return url.replace('~', window.tc.relativePath);\n\treturn url.replace('~', '');\n}\n\n// expected format \"yyyy-MM-ddTH:mm:ss-0:00\"\nfunction parseJsonDate(value) {\n\n\tif (!value) return null;\n\tif (_.isDate(value)) return value;\n\n\tvar dateTime = value.split('T');\n\tvar dateParts = dateTime[0].split('-');\n\tvar year = parseInt(dateParts[0], 10);\n\tvar month = parseInt(dateParts[1], 10) - 1;\n\tvar day = parseInt(dateParts[2], 10);\n\tif (dateTime.length === 1) {\n\t\treturn new Date(year, month, day);\n\t}\n\n\tvar timeParts = dateTime[1].split('-')[0].split(':');\n\tvar hour = parseInt(timeParts[0], 10);\n\tvar minute = parseInt(timeParts[1], 10);\n\tvar second = parseInt(timeParts[2], 10);\n\n\treturn new Date(year, month, day, hour, minute, second);\n}\n\nNumber.prototype.round = function(precision) {\n\tvar factor = Math.pow(10, precision);\n\n\treturn Math.round(this * factor) / factor;\n};\n\nNumber.prototype.mod = function(n) {\n\treturn this - (n * Math.floor(this / n));\n};\n\nNumber.prototype.incrementalRound = function(roundIncrement, roundUp) {\n\tvar tenthRemainder = this.mod(0.10);\n\tif (tenthRemainder > 0) {\n\t\tvar base = (this - tenthRemainder).round(2);\n\t\tvar roundedTenth = tenthRemainder > 0.05 ? 0.10 : 0;\n\n\t\tif (roundUp === false)\n\t\t\treturn base - roundedTenth - roundIncrement;\n\n\t\treturn base + roundedTenth + roundIncrement;\n\t}\n\n\treturn this.round(2);\n};\nString.prototype.capitalize = function() {\n\treturn this && this[0].toUpperCase() + this.slice(1);\n};\n\nString.prototype.toLowerCaseFirstChar = function() {\n\treturn this && this[0].toLowerCase() + this.slice(1);\n};\n\n// formats to MM/dd/yyyy\nDate.prototype.formatDate = function() {\n\tvar s = '';\n\tvar month = this.getMonth() + 1;\n\tvar date = this.getDate();\n\tvar year = this.getFullYear();\n\tif (month < 10)\n\t\ts += '0';\n\ts += month.toString() + '/';\n\tif (date < 10)\n\t\ts += '0';\n\ts += date.toString() + '/';\n\ts += year.toString();\n\n\treturn s;\n}; // sorts an array in place by one or more key functions and/or named properties\n//\n// example usage:\n// var list = [\n// { foo: 4, bar: 5, quux: 6 },\n// { foo: 4, bar: 5, quux: 7 },\n// { foo: 5, bar: 1, quux: 9 }\n// ];\n// list.sortBy(['foo', function(obj) { return obj.foo * obj.bar; }, 'quux'], true);\n//\nArray.prototype.sortBy = function(functionsOrPropertyNames, reverse) {\n\tif (!_.isArray(functionsOrPropertyNames)) return this.sortBy([functionsOrPropertyNames], reverse);\n\tvar direction = 1;\n\tif (reverse) direction = -1;\n\n\treturn this.sort(compare.bind(this, functionsOrPropertyNames));\n\n\tfunction compare(functionsOrPropertyNames, a, b) {\n\t\tvar p = functionsOrPropertyNames[0];\n\t\tvar aVal, bVal;\n\t\tif (_.isFunction(p)) {\n\t\t\taVal = p(a);\n\t\t\tbVal = p(b);\n\t\t} else {\n\t\t\taVal = a[p];\n\t\t\tbVal = b[p];\n\t\t}\n\n\t\tif (aVal === bVal) {\n\t\t\tif (functionsOrPropertyNames.length == 1) return 0;\n\n\t\t\t// otherwise recurse on the rest of the property names\n\t\t\treturn compare(functionsOrPropertyNames.slice(1), a, b);\n\t\t}\n\t\tif (!aVal) return direction;\n\t\tif (!bVal) return -1 * direction;\n\t\tif (aVal < bVal) return -1 * direction;\n\n\t\treturn -1;\n\t}\n};\n\n// remove item from the array, checking for reference identity\nArray.prototype.removeItem = function(item) {\n\tfor (var i = 0; i < this.length; i++) {\n\t\tif (this[i] === item) {\n\t\t\tthis.splice(i, 1);\n\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n};\n\nfunction objectToQueryString(obj) {\n\tvar parts = [];\n\tfor (var i in obj) {\n\t\tif (obj.hasOwnProperty(i)) {\n\t\t\tparts.push(encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]));\n\t\t}\n\t}\n\n\treturn parts.join('&');\n}\n\nfunction parseQueryString(url) {\n\tvar result = {};\n\t// Use the String::replace method to iterate over each\n\t// name-value pair in the query string. Location.search\n\t// gives us the query string (if it exists).\n\turl = url || window.location.search;\n\t//window.location.search.replace(new RegExp(\"([^?=&]+)(=([^&]*))?\", \"g\"),\n\turl.replace(new RegExp('([^?=&]+)(=([^&]*))?', 'g'),\n\t\t// For each matched query string pair, add that\n\t\t// pair to the URL struct using the pre-equals\n\t\t// value as the key.\n\t\tfunction($0, $1, $2, $3) {\n\t\t\tresult[$1] = $3;\n\t\t}\n\t);\n\n\treturn result;\n}\n\n// like _.extend, but will skip and not copy source properties that are arrays\nfunction extendNonArrayProperties(dest, src) {\n\tfor (var key in src) {\n\t\tif (src.hasOwnProperty(key) && !_.isArray(src[key]))\n\t\t\tdest[key] = src[key];\n\t}\n}\n\nfunction getDaysBackText(daysBack) {\n\tvar lookBackDaysText = daysBack + ' days';\n\tif (daysBack === 1) {\n\t\tlookBackDaysText = 'day';\n\t}\n\tif (daysBack === 180) {\n\t\tlookBackDaysText = '6 months';\n\t}\n\tif (daysBack >= 365) {\n\t\tlookBackDaysText = 'year';\n\t}\n\n\treturn lookBackDaysText;\n}\n","var d3dat = (function (lib) {\n\n\tlib.version = '1.0';\n\n\treturn lib;\n\n\n\n\n}(d3dat || {}));\n","(function (window, undefined) {\n\n\t'use strict';\n\n\t/* istanbul ignore next */\n\twindow._arrayBufferToBase64 = function ( buffer ) { //http://stackoverflow.com/questions/9267899/arraybuffer-to-base64-encoded-string\n\t\tvar binary = '';\n\t\tvar bytes = new Uint8Array( buffer );\n\t\tvar len = bytes.byteLength;\n\t\tfor (var i = 0; i < len; i++) {\n\t\t\tbinary += String.fromCharCode( bytes[ i ] );\n\t\t}\n\n\t\treturn window.btoa( binary );\n\t};\n\n\n\tvar mod = window.angular.module('naif.base64', []);\n\n\tmod.directive('baseSixtyFourInput', [\n\t\t'$window',\n\t\t'$q',\n\t\tfunction ($window, $q) {\n\n\t\t\tvar isolateScope = {\n\t\t\t\tonChange: '&',\n\t\t\t\tparser: '&'\n\t\t\t};\n\n\t\t\tvar FILE_READER_EVENTS = ['onabort', 'onerror', 'onloadstart', 'onloadend', 'onprogress', 'onload'];\n\t\t\tfor (var i = FILE_READER_EVENTS.length - 1; i >= 0; i--) {\n\t\t\t\tvar e = FILE_READER_EVENTS[i];\n\t\t\t\tisolateScope[e] = '&';\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\trestrict: 'A',\n\t\t\t\trequire: '?ngModel',\n\t\t\t\tscope: isolateScope,\n\t\t\t\tlink: function (scope, elem, attrs, ngModel) {\n\n\t\t\t\t\t/* istanbul ignore if */\n\t\t\t\t\tif (!ngModel) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// need set falsy to activate required state when user predefines value for model\n\t\t\t\t\tngModel.$setViewValue(null);\n\t\t\t\t\tngModel.$setPristine();\n\n\t\t\t\t\tvar rawFiles = [];\n\t\t\t\t\tvar fileObjects = [];\n\n\t\t\t\t\tfunction _attachHandlerForEvent (eventName, handler, fReader, file, fileObject) {\n\t\t\t\t\t\tfReader[eventName] = function (e) {\n\t\t\t\t\t\t\thandler()(e, fReader, file, rawFiles, fileObjects, fileObject);\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction _readerOnLoad (fReader, file, fileObject) {\n\n\t\t\t\t\t\treturn function (e) {\n\n\t\t\t\t\t\t\tvar buffer = e.target.result;\n\t\t\t\t\t\t\tvar promise;\n\n\t\t\t\t\t\t\tfileObject.base64 = $window._arrayBufferToBase64(buffer);\n\n\t\t\t\t\t\t\tif (attrs.parser) {\n\t\t\t\t\t\t\t\tpromise = $q.when(scope.parser()(file, fileObject));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tpromise = $q.when(fileObject);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tpromise.then(function (fileObj) {\n\t\t\t\t\t\t\t\tfileObjects.push(fileObj);\n\t\t\t\t\t\t\t\t_setViewValue();\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tif (attrs.onload) {\n\t\t\t\t\t\t\t\tscope.onload()(e, fReader, file, rawFiles, fileObjects, fileObject);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t};\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction _attachEventHandlers (fReader, file, fileObject) {\n\n\t\t\t\t\t\tfor (var i = FILE_READER_EVENTS.length - 1; i >= 0; i--) {\n\t\t\t\t\t\t\tvar e = FILE_READER_EVENTS[i];\n\t\t\t\t\t\t\tif (attrs[e] && e !== 'onload') { // don't attach handler to onload yet\n\t\t\t\t\t\t\t\t_attachHandlerForEvent(e, scope[e], fReader, file, fileObject);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfReader.onload = _readerOnLoad(fReader, file, fileObject);\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction _setViewValue () {\n\t\t\t\t\t\tvar newVal = attrs.multiple ? fileObjects : fileObjects[0];\n\t\t\t\t\t\tngModel.$setViewValue(newVal);\n\t\t\t\t\t\tif (angular.isFunction(ngModel.$validate)) {\n\t\t\t\t\t\t\tngModel.$validate();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar v = angular.version.full.split('.');\n\n\t\t\t\t\t\t// manually run parsers for angular versions >= 1.3.4 since they are not triggered automatically on ngModel.$setViewValue\n\t\t\t\t\t\tif (v[0] === '1' && v[1] === '3' && parseInt(v[2]) >= 4) {\n\t\t\t\t\t\t\tvar val = ngModel.$viewValue;\n\t\t\t\t\t\t\t_maxsize(val);\n\t\t\t\t\t\t\t_minsize(val);\n\t\t\t\t\t\t\t_maxnum(val);\n\t\t\t\t\t\t\t_minnum(val);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction _readFiles () {\n\n\t\t\t\t\t\tfor (var i = rawFiles.length - 1; i >= 0; i--) {\n\n\t\t\t\t\t\t\tvar reader = new $window.FileReader();\n\t\t\t\t\t\t\tvar file = rawFiles[i];\n\t\t\t\t\t\t\tvar fileObject = {};\n\n\t\t\t\t\t\t\tfileObject.filetype = file.type;\n\t\t\t\t\t\t\tfileObject.filename = file.name;\n\t\t\t\t\t\t\tfileObject.filesize = file.size;\n\n\t\t\t\t\t\t\t_attachEventHandlers(reader, file, fileObject);\n\n\t\t\t\t\t\t\treader.readAsArrayBuffer(file);\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction _onChange (e) {\n\t\t\t\t\t\tif (attrs.onChange) {\n\t\t\t\t\t\t\tscope.onChange()(e, rawFiles);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem.on('change', function(e) {\n\n\t\t\t\t\t\tif(!e.target.files.length) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfileObjects = [];\n\t\t\t\t\t\tfileObjects = angular.copy(fileObjects);\n\t\t\t\t\t\trawFiles = e.target.files; // use event target so we can mock the files from test\n\t\t\t\t\t\t_readFiles();\n\t\t\t\t\t\t_onChange(e);\n\n\t\t\t\t\t});\n\n\t\t\t\t\t// VALIDATIONS =========================================================\n\n\t\t\t\t\tfunction _maxnum (val) {\n\t\t\t\t\t\tif (attrs.maxnum && attrs.multiple && val) {\n\t\t\t\t\t\t\tvar valid = val.length <= parseInt(attrs.maxnum);\n\t\t\t\t\t\t\tngModel.$setValidity('maxnum', valid);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn val;\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction _minnum (val) {\n\t\t\t\t\t\tif (attrs.minnum && attrs.multiple && val) {\n\t\t\t\t\t\t\tvar valid = val.length >= parseInt(attrs.minnum);\n\t\t\t\t\t\t\tngModel.$setValidity('minnum', valid);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn val;\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction _maxsize (val) {\n\t\t\t\t\t\tvar valid = true;\n\n\t\t\t\t\t\tif (attrs.maxsize && val) {\n\t\t\t\t\t\t\tvar max = parseFloat(attrs.maxsize) * 1000;\n\n\t\t\t\t\t\t\tif (attrs.multiple) {\n\t\t\t\t\t\t\t\tfor (var i = 0; i < val.length; i++) {\n\t\t\t\t\t\t\t\t\tvar file = val[i];\n\t\t\t\t\t\t\t\t\tif (file.filesize > max) {\n\t\t\t\t\t\t\t\t\t\tvalid = false;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tvalid = val.filesize <= max;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tngModel.$setValidity('maxsize', valid);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn val;\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction _minsize (val) {\n\t\t\t\t\t\tvar valid = true;\n\t\t\t\t\t\tvar min = parseFloat(attrs.minsize) * 1000;\n\n\t\t\t\t\t\tif (attrs.minsize && val) {\n\t\t\t\t\t\t\tif (attrs.multiple) {\n\t\t\t\t\t\t\t\tfor (var i = 0; i < val.length; i++) {\n\t\t\t\t\t\t\t\t\tvar file = val[i];\n\t\t\t\t\t\t\t\t\tif (file.filesize < min) {\n\t\t\t\t\t\t\t\t\t\tvalid = false;\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tvalid = val.filesize >= min;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tngModel.$setValidity('minsize', valid);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn val;\n\t\t\t\t\t}\n\n\t\t\t\t\tngModel.$parsers.push(_maxnum);\n\t\t\t\t\tngModel.$parsers.push(_minnum);\n\t\t\t\t\tngModel.$parsers.push(_maxsize);\n\t\t\t\t\tngModel.$parsers.push(_minsize);\n\n\t\t\t\t}\n\t\t\t};\n\n\t\t}]);\n\n})(window);\n\n","angular.module('dat.shared-components.common', []);\n","/* eslint-disable no-undef */\n// TODO: remove code above and fix issues in case changing this file\n\n(function() {\n\t'use strict';\n\n\tangular\n\t\t.module('dat.shared-components.common')\n\t\t.directive('datTooltip', datTooltip)\n\t\t.controller('TooltipCtrl', TooltipCtrl);\n\n\tfunction datTooltip() {\n\t\tvar directive = {\n\t\t\trestrict: 'EA',\n\t\t\treplace: true,\n\t\t\ttransclude: true,\n\t\t\tscope: {\n\t\t\t\tfor: '@datFor',\n\t\t\t\ttitle: '@datTitle',\n\t\t\t\tshowCloseLink: '@datShowCloseLink',\n\t\t\t\tposition: '@datPosition',\n\t\t\t\topenOn: '@datOpenOn',\n\t\t\t\toptions: '=datOptions',\n\t\t\t\ttooltipClass: '@datTooltipClass',\n\t\t\t\ttoggleDisplayOn: '=datToggleDisplayOn',\n\t\t\t\tremoveOnClose: '@datRemoveOnClose',\n\t\t\t\tcloseAllOnOpen: '@datCloseAllOnOpen'\n\t\t\t},\n\t\t\ttemplateUrl: '/app/shared-components/common/tooltip.html',\n\t\t\tcontroller: 'TooltipCtrl',\n\t\t\tcontrollerAs: 'ctrl'\n\t\t};\n\n\t\treturn directive;\n\t}\n\n\tTooltipCtrl.$inject = ['$scope', '$element', '$timeout', 'eventNameService'];\n\n\tfunction TooltipCtrl($scope, $element, $timeout, eventNameService) {\n\t\tvar self = this,\n\t\t\ttooltip = null;\n\n\t\tself.m = {\n\t\t\ttitle: $scope.title,\n\t\t\tshowCloseLink: $scope.showCloseLink\n\t\t};\n\t\tself.closeTooltip = closeTooltip;\n\n\t\tactivate();\n\n\t\t////////////////////\n\n\t\tfunction activate() {\n\t\t\ttooltip = new Drop({ // Documentation: http://github.hubspot.com/drop/\n\t\t\t\ttarget: $($scope.for)[0],\n\t\t\t\tposition: $scope.position,\n\t\t\t\tcontent: $element[0],\n\t\t\t\topenOn : $scope.openOn,\n\t\t\t\tclasses : $scope.tooltipClass || '',\n\t\t\t\tconstrainToWindow: false,\n\t\t\t\ttetherOptions: $scope.options, // Documentation: http://tether.io/\n\t\t\t\tremove: $scope.removeOnClose && $scope.removeOnClose === 'true'\n\t\t\t});\n\n\t\t\tif (!angular.isUndefined($scope.toggleDisplayOn)) {\n\t\t\t\t$scope.$watch('toggleDisplayOn', toggleDisplayOnHandler);\n\t\t\t}\n\t\t\t$scope.$on('$destroy', destroyCleanup);\n\t\t\t$scope.$on(eventNameService.toolTip.reposition, repositionToolTip);\n\t\t}\n\n\t\tfunction closeTooltip() {\n\t\t\ttooltip.close();\n\t\t}\n\n\t\tfunction toggleDisplayOnHandler(newValue) {\n\t\t\tif (newValue === true) {\n\t\t\t\ttooltip.open();\n\t\t\t\t$timeout(repositionToolTip, 1);\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcloseTooltip();\n\t\t}\n\n\t\tfunction repositionToolTip() {\n\t\t\tif (tooltip) {\n\t\t\t\ttooltip.position();\n\t\t\t}\n\t\t}\n\n\t\tfunction destroyCleanup() {\n\t\t\tif (tooltip) {\n\t\t\t\t//tooltip.destroy(); TODO: figure out why this fails in Karma\n\t\t\t}\n\t\t}\n\t}\n\n})();\n","(function() {\n\t'use strict';\n\n\tangular\n\t\t.module('dat.shared-components.common')\n\t\t.directive('datModalDialog', datModalDialog)\n\t\t.controller('ModalDialogCtrl', ModalDialogCtrl);\n\n\tfunction datModalDialog() {\n\t\treturn {\n\t\t\trestrict: 'EA',\n\t\t\treplace: true,\n\t\t\ttransclude: true,\n\t\t\tscope: {\n\t\t\t\tshow: '=datShow',\n\t\t\t\ttitle: '=datTitle',\n\t\t\t\tshowCloseLink: '=datShowCloseLink',\n\t\t\t\thideHeader: '@datHideHeader',\n\t\t\t\tcssClass: '@datCssClass',\n\t\t\t\tclickOutsideClosesModal: '@datClickOutsideClosesModal',\n\t\t\t\tcloseConfirmFn: '&datCloseConfirm',\n\t\t\t\tcloseConfirmButtonText: '@datCloseConfirmButtonText'\n\t\t\t},\n\t\t\ttemplateUrl: '/app/shared-components/common/modal-dialog.html',\n\t\t\tcontroller: 'ModalDialogCtrl',\n\t\t\tcontrollerAs: 'ctrl',\n\t\t\tlink: modalDialogLinkFn\n\t\t};\n\t}\n\n\tModalDialogCtrl.$inject = ['$scope', '$element', 'eventNameService', '$timeout', '$document'];\n\tvar $document;\n\n\tfunction ModalDialogCtrl($scope, $element, eventNameService, $timeout, _$document_) {\n\t\tvar self = this;\n\t\t$document = _$document_;\n\n\t\tself.m = {\n\t\t\ttitle: $scope.title,\n\t\t\tshowCloseLink: $scope.showCloseLink,\n\t\t\tisShown: $scope.show,\n\t\t\thideHeader: ($scope.hideHeader || false),\n\t\t\tcssClass: $scope.cssClass || '',\n\t\t\tclickOutsideClosesModal: $scope.clickOutsideClosesModal || true,\n\t\t\tcloseConfirmFn: $scope.closeConfirmFn || null,\n\t\t\tcloseConfirmVisible: false,\n\t\t\tcloseConfirmButtonText: $scope.closeConfirmButtonText || 'close',\n\t\t\tcloseConfirmMessage: ''\n\t\t};\n\n\t\tself.initiateCloseModal = initiateCloseModal;\n\t\tself.closeModal = closeModal;\n\t\tself.outsideModalClicked = outsideModalClicked;\n\t\tself.cancelClose = cancelClose;\n\n\t\tactivate();\n\n\t\t////////////////////\n\n\t\tfunction activate() {\n\t\t\tmoveElementToBody();\n\t\t}\n\n\t\tfunction moveElementToBody() {\n\t\t\tif ($element.appendTo) {\n\t\t\t\t$timeout(function() {\n\t\t\t\t\t$element.appendTo('body');\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t$scope.$watch('show', function(newValue) {\n\t\t\tself.m.isShown = newValue;\n\t\t\treset();\n\t\t\t$timeout(function() {\n\t\t\t\tif (self.m.isShown === true) {\n\t\t\t\t\t$element = $($element);\n\t\t\t\t\tvar firstTabbable = $element.find(':tabbable')[0];\n\t\t\t\t\tif (firstTabbable) {\n\t\t\t\t\t\tfirstTabbable.focus();\n\t\t\t\t\t\tif (firstTabbable.select) {\n\t\t\t\t\t\t\tfirstTabbable.select();\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$element[0].focus();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\t$scope.$watch('title', function(newValue) {\n\t\t\tself.m.title = newValue;\n\t\t});\n\n\t\t$scope.$watch('cssClass', function(newValue) {\n\t\t\tself.m.cssClass = newValue;\n\t\t});\n\n\t\tfunction outsideModalClicked() {\n\t\t\tif (self.m.clickOutsideClosesModal === true) {\n\t\t\t\tcloseModal();\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tfunction initiateCloseModal() {\n\t\t\tvar close = true;\n\t\t\tif (self.m.closeConfirmFn) {\n\t\t\t\tvar closeConfirmInnerFn = self.m.closeConfirmFn();\n\t\t\t\tif (closeConfirmInnerFn) {\n\t\t\t\t\tself.m.closeConfirmMessage = closeConfirmInnerFn();\n\t\t\t\t\tif (self.m.closeConfirmMessage) {\n\t\t\t\t\t\tclose = false;\n\t\t\t\t\t\tself.m.closeConfirmVisible = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (close) {\n\t\t\t\tcloseModal();\n\t\t\t}\n\t\t}\n\n\t\tfunction closeModal() {\n\t\t\tself.m.isShown = $scope.show = false;\n\t\t\t$scope.$root.$broadcast(eventNameService.modalDialog.closed);\n\t\t}\n\n\t\tfunction cancelClose() {\n\t\t\tself.m.closeConfirmVisible = false;\n\t\t}\n\n\t\tfunction reset() {\n\t\t\tself.m.closeConfirmVisible = false;\n\t\t\tself.m.closeConfirmMessage = '';\n\t\t}\n\t}\n\n\tfunction modalDialogLinkFn(scope, _element) {\n\t\tvar element = $(_element);\n\t\tregisterElementEventHandlers();\n\n\t\tfunction registerElementEventHandlers() {\n\t\t\tif ($document) {\n\t\t\t\t$document.on('focusin', trapFocus); // required for IE\n\t\t\t\t$document.on('focus', trapFocus);\n\t\t\t}\n\t\t\telement.on('keydown', keyDownHandler);\n\t\t\telement.on('$destroy', destroyCleanup);\n\t\t}\n\n\t\tfunction keyDownHandler(e) {\n\t\t\tvar tabbable = element.find(':tabbable'),\n\t\t\t\tfirstTabbable = tabbable[0],\n\t\t\t\tlastTabbable = tabbable[tabbable.length - 1];\n\n\t\t\tif (e.which === 9) {\n\t\t\t\te.originalEvent.isAlreadyHandled = true;\n\t\t\t\tif (e.target === lastTabbable || (e.target === firstTabbable && e.shiftKey)) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tfirstTabbable.focus();\n\t\t\t\t\tif (firstTabbable.select) {\n\t\t\t\t\t\tfirstTabbable.select();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction trapFocus(e) {\n\t\t\tif (!$(element).is(':visible')) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (element[0].contains && !element[0].contains(e.target)) {\n\t\t\t\te.stopPropagation();\n\t\t\t\telement.focus();\n\t\t\t}\n\t\t}\n\n\t\tfunction destroyCleanup() {\n\t\t\tif ($document) {\n\t\t\t\t$document.on('focusin', trapFocus);\n\t\t\t\t$document.off('focus', trapFocus);\n\t\t\t\t$document = null;\n\t\t\t}\n\t\t\telement.off('keydown', keyDownHandler);\n\t\t}\n\t}\n})();\n","angular.module('dat.shared-components.common')\n\t.factory('eventNameService', [\n\t\tfunction() {\n\t\t\t'use strict';\n\n\t\t\treturn {\n\t\t\t\trateCalculator: {\n\t\t\t\t\tPreferencesUpdated: 'RATE_CALCULATOR_PREFERENCES_UPDATED'\n\t\t\t\t},\n\t\t\t\tmodalDialog: {\n\t\t\t\t\tclosed: 'MODAL_DIALOG_CLOSED'\n\t\t\t\t},\n\t\t\t\ttoolTip: {\n\t\t\t\t\treposition: 'TOOLTIP_REPOSITION'\n\t\t\t\t},\n\t\t\t\ttabs: {\n\t\t\t\t\tselected: 'TABS_SELECTED'\n\t\t\t\t},\n\t\t\t\tcompanyDetail: {\n\t\t\t\t\tmodalClosed: 'dat:company-detail:modal-closed',\n\t\t\t\t\taddedOfficeFilter: 'dat:company-detail:added-office-filter',\n\t\t\t\t\tremovedOfficeFilter: 'dat:company-detail:removed-office-filter'\n\t\t\t\t},\n\t\t\t\tequipmentSelect: {\n\t\t\t\t\tequipmentParsed: 'dat:equipment-select:equipment-parsed',\n\t\t\t\t\temptySearchInitialized: 'dat:equipment-select:empty-search-initialized',\n\t\t\t\t\tcloseAndOpen: 'dat:equipment-select:close-and-open'\n\t\t\t\t},\n\t\t\t\tsessionLogin: {\n\t\t\t\t\tloginSuccessful: 'dat:session-login:login-successful',\n\t\t\t\t\tloginFailed: 'dat:session-login:login-failed'\n\t\t\t\t},\n\t\t\t\tslider: {\n\t\t\t\t\tnewValue: 'dat.slider:new-value'\n\t\t\t\t},\n\t\t\t\ttabbedModalDialog: {\n\t\t\t\t\topenTab: 'TABBED_MODAL_DIALOG.OPEN_TAB',\n\t\t\t\t\tvalidationStateChanged: 'TABBED_MODAL_DIALOG.VALIDATION_STATE_CHANGED',\n\t\t\t\t\tchangeView: 'TABBED_MODAL_DIALOG.NAVIGATION',\n\t\t\t\t\topenModal: 'TABBED_MODAL_DIALOG.DATA_OPEN',\n\t\t\t\t\tcloseModal: 'TABBED_MODAL_DIALOG.CLOSE',\n\t\t\t\t\tforceCloseModal: 'TABBED_MODAL_DIALOG.FORCE_CLOSE'\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t]);\n","'use strict';\n(function() {\n\tangular.module('dat.shared-components.common')\n\t\t.directive('datInputError', datInputError);\n\n\tfunction datInputError() {\n\t\treturn {\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope, element, attrs) {\n\t\tvar hideOnBlur = (attrs.hideOnBlur || 'true') === 'true';\n\n\t\tattrs.$observe('datInputError', function (val) {\n\t\t\tif (attrs.datInputErrorFor[attrs.datInputErrorFor.length-1] === '#') return;\n\t\t\tvar $input = $(attrs.datInputErrorFor);\n\n\t\t\tif (val === 'true') {\n\t\t\t\t// Commenting out so that the tooltip is only shown when focus is set on the field\n\t\t\t\t//element.addClass('show');\n\t\t\t\t$input.addClass('ng-invalid-input');\n\t\t\t}\n\t\t\telse {\n\t\t\t\telement.removeClass('show');\n\t\t\t\t$input.removeClass('ng-invalid-input');\n\t\t\t}\n\n\t\t\t$input.on('blur', function () {\n\t\t\t\tif (hideOnBlur) {\n\t\t\t\t\t// hide the bubble, but leave the input border red, when the input loses focus\n\t\t\t\t\telement.removeClass('show');\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t$input.on('focus', function () {\n\t\t\t\t// if focus returns and the input is in error, show the bubble again\n\t\t\t\tif (attrs.datInputError === 'true') {\n\t\t\t\t\telement.addClass('show');\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t}\n})();\n","'use strict';\n\n(function() {\n\tangular.module('dat.shared-components.common')\n\t\t.factory('BaseHttpService', baseHttpService);\n\n\tbaseHttpService.$inject = ['$http'];\n\n\tfunction baseHttpService($http) {\n\t\treturn {\n\t\t\tpost: post,\n\t\t\tget: get,\n\t\t\tget2: get2,\n\t\t\tput: put,\n\t\t\t'delete': deleteFunc\n\t\t};\n\n\t\tfunction post(path, model, successFunc, errorFunc) {\n\t\t\treturn execute($http.post, path, model, successFunc, errorFunc);\n\t\t}\n\n\t\tfunction put(path, model, successFunc, errorFunc) {\n\t\t\treturn execute($http.put, path, model, successFunc, errorFunc);\n\t\t}\n\n\t\tfunction get(path, successFunc, errorFunc) {\n\t\t\treturn get2(path, null, successFunc, errorFunc);\n\t\t}\n\n\t\tfunction deleteFunc(path, id, successFunc, errorFunc) {\n\t\t\tvar config = getBypassErrorConfig(errorFunc);\n\n\t\t\treturn $http.delete(path + '/' + id, config)\n\t\t\t\t.success(function (data, status, headers, config) {\n\t\t\t\t\thandleSuccess(successFunc, data, status, headers, config);\n\t\t\t\t})\n\t\t\t\t.error(function (data, status, headers, config) {\n\t\t\t\t\thandleError(errorFunc, data, status, headers, config);\n\t\t\t\t});\n\t\t}\n\n\t\tfunction get2(path, model, successFunc, errorFunc) {\n\t\t\tvar config = getBypassErrorConfig(errorFunc);\n\t\t\tif (model) {\n\t\t\t\tconfig.params = model;\n\t\t\t}\n\n\t\t\treturn $http.get(path, config)\n\t\t\t\t.success(function(data, status, headers, config) {\n\t\t\t\t\thandleSuccess(successFunc, data, status, headers, config);\n\t\t\t\t})\n\t\t\t\t.error(function(data, status, headers, config) {\n\t\t\t\t\thandleError(errorFunc, data, status, headers, config);\n\t\t\t\t});\n\t\t}\n\n\t\tfunction execute(func, path, model, successFunc, errorFunc) {\n\t\t\tvar config = getBypassErrorConfig(errorFunc);\n\n\t\t\treturn func(path, model, config)\n\t\t\t\t.success(function(data, status, headers, config) {\n\t\t\t\t\thandleSuccess(successFunc, data, status, headers, config);\n\t\t\t\t})\n\t\t\t\t.error(function(data, status, headers, config) {\n\t\t\t\t\thandleError(errorFunc, data, status, headers, config);\n\t\t\t\t});\n\t\t}\n\n\t\tfunction getBypassErrorConfig(error) {\n\t\t\treturn error ? { bypassErrorsInterceptor: true } : {};\n\t\t}\n\n\t\tfunction handleSuccess(successFunc, data, status, headers, config) {\n\t\t\tif (successFunc) {\n\t\t\t\tsuccessFunc(data, status, headers, config);\n\t\t\t}\n\t\t}\n\n\t\tfunction handleError(errorFunc, data, status, headers, config) {\n\t\t\tif (errorFunc) {\n\t\t\t\terrorFunc(data, status, headers, config);\n\t\t\t}\n\t\t}\n\t}\n})();\n","/* eslint-disable no-undef */\n// TODO: remove code above and fix issues in case changing this file\n\n'use strict';\n(function () {\n\tangular.module('dat.shared-components.common')\n\t\t.directive('datSlider', datSlider);\n\n\tdatSlider.$inject = ['$log', 'eventNameService'];\n\n\tvar $log, eventNameService;\n\tfunction datSlider(_$log_, _eventNameService_) {\n\t\t$log = _$log_; eventNameService = _eventNameService_;\n\n\t\treturn {\n\t\t\tscope: {\n\t\t\t\tvalues: '@',\n\t\t\t\tstartingValue: '@',\n\t\t\t\taxisOrient: '@',\n\t\t\t\tchangedToValue: '&',\n\t\t\t\tdisableSlider: '='\n\t\t\t},\n\t\t\ttemplate: '
',\n\t\t\treplace: true,\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tfunction linkFunction(scope, elem, attrs) {\n\t\tif (!scope.values) {\n\t\t\tlogAndThrowError('Missing \\'values\\' attribute for datSlider directive');\n\t\t}\n\n\t\tvar valuesArray = scope.$eval(scope.values);\n\n\t\tif (!valuesArray || !_.isArray(valuesArray) || valuesArray.length == 0) {\n\t\t\tlogAndThrowError('Missing or invalid \\'values\\' attribute for datSlider directive');\n\t\t}\n\t\tif (!scope.startingValue) scope.startingValue = valuesArray[0];\n\t\tif (!scope.axisOrient) {\n\t\t\tscope.axisOrient = 'top';\n\t\t}\n\t\telse {\n\t\t\tif (scope.axisOrient !== 'top' && scope.axisOrient != 'bottom') {\n\t\t\t\tlogAndThrowError('axisOrient attribute for datSlider directive must be either \\'top\\' or \\'bottom\\'');\n\t\t\t}\n\t\t}\n\t\tvar slider = d3dat.slider()\n\t\t\t.axisOrient(scope.axisOrient)\n\t\t\t.sliderValues(valuesArray)\n\t\t\t.log($log)\n\t\t\t.value(scope.startingValue)\n\t\t\t.on('slideend', sliderEventSlideEnd)\n\t\t\t.on('click', sliderEventClick);\n\n\t\tif (scope.disableSlider) {\n\t\t\tslider.disable(scope.disableSlider.disable);\n\t\t}\n\n\t\td3.select(elem[0]).call(slider);\n\n\t\tscope.$watch('disableSlider', function (value, previous) {\n\t\t\t$log.debug('datSlider: disableSlider changed. value: ' + (value ? value.disable : '') + '. previous: ' + (previous ? previous.disable : ''));\n\t\t\tif (value && (value !== previous || value !== slider.disable())) {\n\t\t\t\tslider.disable(value.disable);\n\t\t\t}\n\t\t}, true);\n\n\t\tscope.$on(eventNameService.slider.newValue, onNewValue);\n\n\t\t///////////////////////////////////////////////////\n\n\t\tfunction sliderEventSlideEnd(evt, value) {\n\t\t\t$log.debug('slider slideend: ' + value);\n\t\t\tsliderEventNotification(value);\n\t\t}\n\n\t\tfunction sliderEventClick(evt, value) {\n\t\t\t$log.debug('slider click: ' + value);\n\t\t\tsliderEventNotification(value);\n\t\t}\n\n\t\tfunction sliderEventNotification(value) {\n\t\t\tif (scope.changedToValue) {\n\t\t\t\tscope.changedToValue({ value: value });\n\t\t\t}\n\t\t}\n\n\t\tfunction onNewValue(event, sliderId, value){\n\t\t\tif (sliderId === attrs.id){\n\t\t\t\tslider.value(value);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction logAndThrowError(errorMsg) {\n\t\t$log.error(errorMsg);\n\t\tthrow errorMsg;\n\t}\n})();\n","'use strict';\n\n(function() {\n\tangular\n\t\t.module('dat.shared-components.common')\n\t\t.filter('phoneNumber', function () {\n\t\t\treturn function(phoneNumber) {\n\t\t\t\tif (!phoneNumber) {\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\n\t\t\t\tvar length = phoneNumber.length;\n\n\t\t\t\tif (length === 10) {\n\t\t\t\t\tvar areaCode = phoneNumber.slice(0, 3);\n\t\t\t\t\tvar prefix = phoneNumber.slice(3, 6);\n\t\t\t\t\tvar suffix = phoneNumber.slice(6,10);\n\n\t\t\t\t\treturn ('(' + areaCode + ') ' + prefix + '-' + suffix);\n\t\t\t\t} else {\n\t\t\t\t\treturn phoneNumber;\n\t\t\t\t}\n\t\t\t};\n\t\t});\n})();\n","(function() {\n\t'use strict';\n\n\tangular\n\t\t.module('dat.shared-components.common')\n\t\t.directive('datMaskingOverlay', datMaskingOverlay)\n\t\t.controller('MaskingOverlayCtrl', MaskingOverlayCtrl);\n\n\tfunction datMaskingOverlay() {\n\t\tvar directive = {\n\t\t\trestrict: 'EA',\n\t\t\treplace: true,\n\t\t\tscope: {\n\t\t\t\ttoggleDisplay: '=',\n\t\t\t\tshowSpinner: '@',\n\t\t\t\tlargeSpinner: '@'\n\t\t\t},\n\t\t\ttemplate: '',\n\t\t\tcontroller: 'MaskingOverlayCtrl',\n\t\t\tcontrollerAs: 'ctrl'\n\t\t};\n\n\t\treturn directive;\n\t}\n\n\tMaskingOverlayCtrl.$inject = ['$scope', '$element'];\n\n\tfunction MaskingOverlayCtrl($scope, $element) {\n\n\t\tactivate();\n\n\t\t////////////////////\n\n\t\tfunction activate() {\n\t\t\tif ($scope.showSpinner) {\n\t\t\t\tif ($scope.largeSpinner) {\n\t\t\t\t\t$element.addClass('overlay-spinner-large');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t$element.addClass('overlay-spinner');\n\t\t\t\t} \n\t\t\t}\n\t\t\telse {\n\t\t\t\t$element.addClass('overlay');\n\t\t\t}\n\n\t\t\tif (!$scope.toggleDisplay) {\n\t\t\t\t$scope.toggleDisplay = true;\n\t\t\t}\n\t\t}\n\t}\n\n})();\n","angular.module('dat.shared-components.location', [\n\t'dat.shared-components.common',\n\t'Scope.safeApply'\n]);\n","// TODO - Papa-fy this code\n'use strict';\nangular.module('dat.shared-components.location')\n\t.factory('baseValidator', ['$q', 'LocationService', function baseValidatorFactory($q, locationService) {\n\n\t\tvar baseValidator;\n\n\t\tfunction validationResult() {\n\t\t\treturn {\n\t\t\t\tdata: {\n\t\t\t\t\tisValid: true,\n\t\t\t\t\tisUnusual: false,\n\t\t\t\t\tmessage: ''\n\t\t\t\t},\n\n\t\t\t\tsetInvalid: function(msg) {\n\t\t\t\t\tthis.data.isValid = false;\n\t\t\t\t\tthis.data.message = msg;\n\t\t\t\t},\n\n\t\t\t\tsetRequired: function (msg, required) {\n\t\t\t\t\tif (required) {\n\t\t\t\t\t\tthis.setInvalid(msg);\n\t\t\t\t\t}\n\t\t\t\t\tthis.data.isEmpty = true;\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\tfunction trim(value) {\n\t\t\treturn value.toString().replace(/(?:(?:^|\\n)\\s+|\\s+(?:$|\\n))/g, '').replace(/\\s+/g, ' ');\n\t\t}\n\n\t\tfunction isEmpty(value) {\n\t\t\tif (value === null || value === undefined)\n\t\t\t\treturn true;\n\n\t\t\treturn trim(value).length == 0;\n\t\t}\n\n\t\tbaseValidator = {\n\t\t\tclearValidation: function(model, field){\n\t\t\t\tvar validator = model[field + 'Validation'];\n\n\t\t\t\tif (validator !== undefined){\n\t\t\t\t\tvalidator.message = '';\n\t\t\t\t\tvalidator.invalid = false;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tresolveLocation: function (locationType, value, trimmedValue, includeAreas, fnSuccess, fnError) {\n\t\t\t\tvar encodedValue = encodeURIComponent(trimmedValue);\n\t\t\t\tvar endPointUrl = '../api/location/resolve?term=' + encodedValue + '&includeAreas=' + includeAreas;\n\n\t\t\t\treturn locationService.resolveLocation(endPointUrl, fnSuccess, fnError);\n\t\t\t},\n\n\t\t\tvalidateLocation: function(locationType, value, includeAreas) {\n\t\t\t\tvar deferred = $q.defer(),\n\t\t\t\t\tresult;\n\t\t\t\tvar trimmedValue = $.trim(value);\n\n\t\t\t\tfunction isOrigin() {\n\t\t\t\t\treturn locationType === 'origin';\n\t\t\t\t}\n\n\t\t\t\tresult = validationResult();\n\n\t\t\t\tif (isEmpty(trimmedValue)) {\n\t\t\t\t\tif (isOrigin()) {\n\t\t\t\t\t\tresult.setRequired('Origin is required', true);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.setRequired('Destination is required', true);\n\t\t\t\t\t}\n\n\t\t\t\t\tdeferred.resolve(result.data);\n\t\t\t\t} else {\n\t\t\t\t\tbaseValidator.resolveLocation(locationType, value, trimmedValue, includeAreas,\n\t\t\t\t\t\tfunction(response) {\n\t\t\t\t\t\t\tif (response.isValid) {\n\t\t\t\t\t\t\t\tresult.data.locationResolution = response.handle;\n\t\t\t\t\t\t\t\tresult.data.isArea = response.isArea;\n\t\t\t\t\t\t\t\tresult.data.enteredValue = trimmedValue;\n\t\t\t\t\t\t\t\tresult.data.coordinates = response.coordinates;\n\t\t\t\t\t\t\t\tresult.data.formattedLocation = response.value;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (isOrigin()) {\n\t\t\t\t\t\t\t\t\tresult.setInvalid('Origin ' + trimmedValue + ' is invalid');\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tresult.setInvalid('Destination ' + trimmedValue + ' is invalid');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdeferred.resolve(result.data);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\tresult.setInvalid('Unknown error');\n\t\t\t\t\t\t\tdeferred.resolve(result.data);\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\n\t\t\t\t}\n\n\t\t\t\treturn deferred.promise;\n\t\t\t},\n\n\t\t\tmakeValidationResultForGivenLocation: function(handle, formattedLocation, isArea) {\n\t\t\t\tvar deferred = $q.defer(), result;\n\t\t\t\tresult = validationResult();\n\t\t\t\tresult.data.isEmpty = false;\n\t\t\t\tresult.data.locationResolution = handle;\n\t\t\t\tresult.data.formattedLocation = formattedLocation;\n\t\t\t\tresult.data.isArea = isArea;\n\t\t\t\tdeferred.resolve(result.data);\n\n\t\t\t\treturn deferred.promise;\n\t\t\t}\n\t\t};\n\n\t\treturn baseValidator;\n\t}]\n\t);\n","'use strict';\n(function () {\n\tangular.module('dat.shared-components.location')\n\t\t.directive('datLocationInput', datLocationInput);\n\n\tdatLocationInput.$inject = ['$rootScope', '$parse', '$document', '$timeout', 'LocationService', 'searchValidator', '$log'];\n\tvar $rootScope, $parse, $document, $timeout, locationService, searchValidator, $log;\n\n\tfunction datLocationInput(_$rootScope_, _$parse_, _$document_, _$timeout_, _locationService_, _searchValidator_, _$log_) {\n\t\t$rootScope = _$rootScope_; $parse = _$parse_; $document = _$document_; $timeout = _$timeout_; locationService = _locationService_; searchValidator = _searchValidator_; $log = _$log_;\n\n\t\treturn {\n\t\t\ttemplate: '',\n\t\t\treplace:true,\n\t\t\trestrict: 'E',\n\t\t\tscope: {\n\t\t\t\tngModel: '=',\n\t\t\t\tfieldName:'@',\n\t\t\t\tplaceHolder: '@',\n\t\t\t\ttabIndex:'@',\n\t\t\t\ttryApplyStickyValue:'&', // TODO - keep this callback for now. Later decide whether to incorporate the functionality implemented by the callback inside this directive.\n\t\t\t\tgetValidateLocationPromise: '&',\n\t\t\t\tallowEmptyLocation: '@',\n\t\t\t\tallowAreaLocationType: '@',\n\t\t\t\tdisableLocation: '='\n\t\t\t},\n\t\t\tlink: linkFunction\n\t\t};\n\t}\n\n\tvar validateLocationPromise;\n\n\tfunction linkFunction(scope, element) {\n\t\tvar isChanged = false;\n\n\t\t// Set default behavior to NOT allow empty locations or area location types\n\t\tvar allowEmptyLocation = (scope.allowEmptyLocation === 'true');\n\t\tvar allowAreaLocationType = (scope.allowAreaLocationType === 'true');\n\t\tvalidateLocationPromise = undefined;\n\t\tvar inputElement = element.find('input');\n\n\t\tscope.inputFocusHandler = function () {\n\t\t\tif (scope.tryApplyStickyValue) {\n\t\t\t\ttry {\n\t\t\t\t\tinputElement.autocomplete('disable');\n\t\t\t\t\tvar wasApplied = scope.tryApplyStickyValue({ fieldName: scope.fieldName });\n\t\t\t\t\tif (wasApplied) {\n\t\t\t\t\t\t$timeout(function () {\n\t\t\t\t\t\t\telement.find('input').select();\n\t\t\t\t\t\t}, 75);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfinally {\n\t\t\t\t\t$timeout(function () {\n\t\t\t\t\t\tinputElement.autocomplete('enable');\n\t\t\t\t\t}, 50);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar updateModel = function(value, handle) {\n\t\t\tscope.$apply(function() {\n\t\t\t\tscope.ngModel[scope.fieldName] = value;\n\t\t\t\tscope.ngModel[scope.fieldName + 'Handle'] = handle ? handle : null;\n\t\t\t});\n\t\t};\n\n\t\tvar handleItemChanged = function(ui) {\n\t\t\tdebugVerbose('handleItemChanged');\n\t\t\tif (!inputElement.hasClass('ng-dirty')) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(ui.item) {\n\t\t\t\t// This case is when a choice was selected from the piclist\n\t\t\t\tdebugVerbose('Calling updateModel with values: ' + ui.item.value + ', ' + ui.item.handle);\n\t\t\t\tupdateModel(ui.item.value, ui.item.handle);\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// This case is when the input was changed by not picking something from the piclist\n\t\t\t\tdebugVerbose('Calling updateModel with value: ' + inputElement.val());\n\t\t\t\tupdateModel(inputElement.val());\n\t\t\t}\n\n\t\t\tif (scope.getValidateLocationPromise && !ui.item) {\n\t\t\t\thandleLocationChange(scope.fieldName); // need to validate the value because it was not chosen from the piclist\n\t\t\t}\n\t\t\tisChanged = true;\n\t\t};\n\n\t\tfunction handleLocationChange(fieldName) {\n\t\t\tvalidateLocationPromise = scope.getValidateLocationPromise();\n\t\t\tif (!validateLocationPromise) return;\n\t\t\tvalidateLocation(fieldName);\n\t\t}\n\n\t\tfunction validateLocation(fieldName) {\n\t\t\tvar criteria = scope.ngModel;\n\t\t\tcriteria[fieldName] = _.str.ltrim(criteria[fieldName]);\n\t\t\tverifyLocation(criteria, fieldName);\n\t\t}\n\n\t\tfunction verifyLocation(searchCriteria, locationType) {\n\t\t\t// Note: In the case when the searchCriteria[fieldName + \"Handle\"] is defined the call to searchValidator.validateField will not result\n\t\t\t// in a call to the API api/location/resolve\n\t\t\t$timeout(function() {\n\t\t\t\tsearchValidator.validateField(searchCriteria, locationType, allowEmptyLocation, allowAreaLocationType).then(function(locationValid) {\n\t\t\t\t\tvalidateLocationPromise.resolve(locationValid);\n\t\t\t\t\tupdateFormFieldsPlaceholderText(locationValid);\n\t\t\t\t}, function () {\n\t\t\t\t\tvalidateLocationPromise.reject();\n\t\t\t\t\tupdateFormFieldsPlaceholderText(false);\n\t\t\t\t});\n\t\t\t}, 200);\n\t\t}\n\n\t\tfunction updateFormFieldsPlaceholderText(locationValid) {\n\t\t\tscope.placeHolder = locationValid ? scope.placeHolder : '';\n\t\t}\n\n\t\tscope.clearValidation = function(evt) {\n\t\t\tvar searchCriteria = scope.ngModel;\n\t\t\tvar field = scope.fieldName;\n\t\t\tif (evt.keyCode === 9 || evt.keyCode === 16 || evt.keyCode === 13)\n\t\t\t\treturn;\n\n\t\t\tdebugVerbose('clearValidation. keyCode = ' + evt.keyCode);\n\n\t\t\tif (field === 'origin') {\n\t\t\t\tsearchCriteria.originHandle = null;\n\t\t\t\tif(scope.allowAreaLocationType === 'true' && angular.isDefined(searchCriteria.originIsArea)) {\n\t\t\t\t\tsearchCriteria.originIsArea = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (field === 'destination') {\n\t\t\t\tsearchCriteria.destinationHandle = null;\n\t\t\t\tif (scope.allowAreaLocationType === 'true' && angular.isDefined(searchCriteria.destinationIsArea)) {\n\t\t\t\t\tsearchCriteria.destinationIsArea = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tsearchValidator.clearValidation(searchCriteria, field);\n\t\t};\n\n\t\tfunction initializeAutoComplete() {\n\t\t\tinputElement.autocomplete({\n\t\t\t\tautoFocus: !allowAreaLocationType,\n\t\t\t\tdelay: 400,\n\t\t\t\tsource: locationService.suggestions,\n\t\t\t\tminLength: 3,\n\t\t\t\tchange: function (event, ui) {\n\t\t\t\t\thandleItemChanged(ui);\n\t\t\t\t},\n\t\t\t\tselect: function(event, ui) {\n\t\t\t\t\thandleItemChanged(ui);\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tinitializeAutoComplete();\n\n\t\tinputElement.on('blur', function(){\n\t\t\tdebugVerbose('blur: isChanged = ' + isChanged);\n\t\t\tdebugDumpModel();\n\t\t\tif(!isChanged){\n\t\t\t\tif (scope.getValidateLocationPromise) {\n\t\t\t\t\t$rootScope.$safeApply(function(){\n\t\t\t\t\t\thandleLocationChange(scope.fieldName);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tisChanged = false;\n\t\t});\n\n\t\tfunction debugDumpModel() {\n\t\t\tif (angular.mock && angular.mock.dump)\n\t\t\t\tdebugVerbose('scope.ngModel = ' + angular.mock.dump(scope.ngModel));\n\t\t}\n\n\t\tfunction debugVerbose(str) {\n\t\t\t//$log.debug(str); // uncomment for verbose debugging\n\t\t}\n\n\t\tscope.$on('$destroy', function () {\n\t\t\tinputElement.autocomplete('destroy');\n\t\t});\n\n\t\tscope.$on('dat:sharedComponents:locationInput:reInit', function () {\n\t\t\t$log.debug('Received dat:sharedComponents:locationInput:reInit');\n\t\t\tinputElement.autocomplete('destroy');\n\t\t\tinitializeAutoComplete();\n\t\t\tisChanged = false;\n\t\t});\n\t}\n})();\n","angular.module('dat.shared-components.location')\n\t.factory('LocationService', ['BaseHttpService', function (baseHttpService) {\n\t\t'use strict';\n\n\t\treturn {\n\t\t\tsuggestions: function(model, fnSuccess) {\n\t\t\t\tbaseHttpService.post('../api/location/suggestions', model, fnSuccess, function(error) {\n\t\t\t\t\tconsole.error('get suggestions ' + error.message);\n\t\t\t\t});\n\t\t\t},\n\t\t\tresolveLocation: baseHttpService.get.bind(this)\n\t\t};\n\t}]);\n","/* eslint-disable no-redeclare */\n// TODO: remove code above and fix issues in case changing this file\n\n(function () {\n\t'use strict';\n\tangular.module('dat.shared-components.location')\n\t\t.factory('searchValidator', searchValidator);\n\n\tsearchValidator.$inject = ['baseValidator', '$q'];\n\n\tfunction searchValidator(baseValidator, $q) {\n\t\tvar validator = {\n\t\t\tclearValidation: clearValidation,\n\t\t\tvalidateField: validateField,\n\t\t\tvalidateAll: validateAll\n\t\t};\n\n\t\treturn validator;\n\n\t\tfunction clearValidation(model, field) {\n\t\t\tbaseValidator.clearValidation(model, field);\n\t\t}\n\n\t\tfunction validateField(model, fieldName, allowEmptyValue, allowAreas) {\n\t\t\treturn validateField(model, fieldName, allowEmptyValue, allowAreas);\n\t\t}\n\n\t\tfunction validateAll(searchModel, allowAreas) {\n\t\t\tvar deferred = $q.defer();\n\n\t\t\tsearchModel.originValidation = initialize(searchModel.originValidation);\n\t\t\tsearchModel.destinationValidation = initialize(searchModel.destinationValidation);\n\n\t\t\t$q.all([getOriginPromise(searchModel, allowAreas), getDestinationPromise(searchModel, allowAreas)])\n\t\t\t\t.then(function (validationResults) {\n\t\t\t\t\tvar isLocationsValid = handleLocations(searchModel, validationResults[0], validationResults[1], allowAreas);\n\t\t\t\t\tdeferred.resolve(isLocationsValid);\n\t\t\t\t});\n\n\t\t\treturn deferred.promise;\n\t\t}\n\n\t\tfunction updateLocationValidationModel(fieldName, searchValidationModel, validationResult) {\n\t\t\tif (validationResult.isValid) {\n\t\t\t\tsearchValidationModel.message = '';\n\t\t\t\tsearchValidationModel.invalid = false;\n\t\t\t} else {\n\t\t\t\tif (validationResult.isEmpty) {\n\t\t\t\t\tsearchValidationModel.message = ((fieldName === 'origin' ? 'Origin' : 'Destination') + ' is required');\n\t\t\t\t} else {\n\t\t\t\t\tsearchValidationModel.message = validationResult.message;\n\t\t\t\t}\n\n\t\t\t\tsearchValidationModel.invalid = true;\n\t\t\t}\n\t\t}\n\n\t\tfunction getFieldPromise(model, fieldName, allowAreas) {\n\t\t\tif (angular.isUndefined(model[fieldName + 'Handle']) || model[fieldName + 'Handle'] === null) {\n\t\t\t\treturn baseValidator.validateLocation(fieldName, model[fieldName], allowAreas);\n\t\t\t} else {\n\t\t\t\treturn baseValidator.makeValidationResultForGivenLocation(model[fieldName + 'Handle'], model[fieldName], model[fieldName + 'IsArea']);\n\t\t\t}\n\t\t}\n\n\t\tfunction getOriginPromise(searchModel, allowAreas) {\n\t\t\tif (angular.isUndefined(searchModel.originHandle) || searchModel.originHandle === null) {\n\t\t\t\treturn baseValidator.validateLocation('origin', searchModel.origin, allowAreas);\n\t\t\t} else {\n\t\t\t\treturn baseValidator.makeValidationResultForGivenLocation(searchModel.originHandle, searchModel.origin, searchModel.originIsArea);\n\t\t\t}\n\t\t}\n\n\t\tfunction getDestinationPromise(searchModel, allowAreas) {\n\t\t\tif (angular.isUndefined(searchModel.destinationHandle) || searchModel.destinationHandle === null) {\n\t\t\t\treturn baseValidator.validateLocation('destination', searchModel.destination, allowAreas);\n\t\t\t} else {\n\t\t\t\treturn baseValidator.makeValidationResultForGivenLocation(searchModel.destinationHandle, searchModel.destination, searchModel.destinationIsArea);\n\t\t\t}\n\t\t}\n\n\t\tfunction handleLocation(model, fieldName, validationResult, allowEmptyField, allowAreas) {\n\t\t\tif (validationResult.isValid) {\n\t\t\t\tmodel[fieldName + 'Handle'] = validationResult.locationResolution;\n\t\t\t\tmodel[fieldName] = validationResult.formattedLocation;\n\t\t\t\tif (allowAreas === true && angular.isDefined(model[fieldName + 'IsArea'])) {\n\t\t\t\t\tmodel[fieldName + 'IsArea'] = validationResult.isArea;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tmodel[fieldName + 'Handle'] = null;\n\t\t\t}\n\n\t\t\tif (validationResult.isEmpty && allowEmptyField === true){\n\t\t\t\tvalidationResult.isValid = true;\n\n\t\t\t\treturn validationResult.isValid;\n\t\t\t}\n\t\t\tif (allowAreas !== true && validationResult.isArea === true){\n\t\t\t\tvalidationResult.message = (fieldName === 'origin' ? 'Origin' : 'Destination') + ' ' + validationResult.enteredValue + ' is invalid';\n\t\t\t\tvalidationResult.isValid = false;\n\t\t\t\tupdateLocationValidationModel(fieldName, model[fieldName + 'Validation'], validationResult);\n\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (validationResult.isEmpty)\n\t\t\t\treset(model[fieldName + 'Validation']);\n\n\t\t\tif (validationResult.isEmpty) {\n\t\t\t\tif (!model[fieldName + 'HasFocus']) {\n\t\t\t\t\tupdateLocationValidationModel(fieldName, model[fieldName + 'Validation'], validationResult);\n\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tif (!validationResult.isEmpty || model[fieldName + 'HasFocus']) {\n\t\t\t\tif (!validationResult.isEmpty)\n\t\t\t\t\tupdateLocationValidationModel(fieldName, model[fieldName + 'Validation'], validationResult);\n\n\t\t\t\tif (validationResult.isEmpty && model[fieldName + 'HasFocus']) {\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\tif (validationResult.isEmpty) {\n\t\t\t\t\t\treturn validationResult.isValid;\n\t\t\t\t\t}\n\t\t\t\t\tif (validationResult.isEmpty) {\n\t\t\t\t\t\treturn validationResult.isValid;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn validationResult.isValid;\n\t\t}\n\n\t\tfunction handleLocations(searchModel, originValidationResult, destinationValidationResult, allowAreas) {\n\n\t\t\thandleLocation(searchModel, 'origin', originValidationResult, allowAreas);\n\t\t\thandleLocation(searchModel, 'destination', destinationValidationResult, allowAreas);\n\n\t\t\treturn originValidationResult.isValid && destinationValidationResult.isValid;\n\t\t}\n\n\t\tfunction reset(validationModel) {\n\t\t\tvalidationModel.message = null;\n\t\t}\n\n\t\tfunction initialize(validationModel) {\n\t\t\treturn validationModel || { message: '', invalid: false };\n\t\t}\n\n\t\tfunction validateField(model, fieldName, allowEmptyValue, allowAreas) {\n\t\t\tvar deferred = $q.defer();\n\n\t\t\tmodel.originValidation = initialize(model.originValidation);\n\n\t\t\t$q.all([getFieldPromise(model, fieldName, allowAreas)])\n\t\t\t\t.then(function (validationResults) {\n\t\t\t\t\tvar isLocationsValid = handleLocation(model, fieldName, validationResults[0], allowEmptyValue, allowAreas);\n\t\t\t\t\tdeferred.resolve(isLocationsValid);\n\t\t\t\t}, function () {\n\t\t\t\t\tdeferred.reject(false);\n\t\t\t\t});\n\n\t\t\treturn deferred.promise;\n\t\t}\n\t}\n})();\n","angular.module('dat.shared-components.equipment', [\n\t'dat.shared-components.common'\n]);\n","'use strict';\n(function () {\n\tangular.module('dat.shared-components.equipment')\n\t\t.directive('datEquipmentSelect', datEquipmentSelect);\n\n\tdatEquipmentSelect.$inject = ['EquipmentService', '$parse', '$log', 'eventNameService'];\n\n\tvar equipmentService, $parse, $log, eventNameService;\n\n\tfunction datEquipmentSelect(_equipmentService_, _$parse_, _$log_, _eventNameService_) {\n\t\tequipmentService = _equipmentService_;\n\t\t$parse = _$parse_;\n\t\t$log = _$log_;\n\t\teventNameService = _eventNameService_;\n\n\t\treturn {\n\t\t\trestrict: 'EA',\n\t\t\ttemplateUrl: '/app/shared-components/equipment/equipment-select.html',\n\t\t\tcompile: function () {\n\t\t\t\treturn {\n\t\t\t\t\tpre: preLink,\n\t\t\t\t\tpost: postLink\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction preLink (scope, element, attrs) {\n\t\tscope.inputId = scope.$id;\n\t\tscope.typesOptions = getTypeOptions(scope);\n\t\tscope.classesOptions = getClassOptions(scope);\n\t\tscope.cached = {types: [], classes: []};\n\t\tscope.toggleTabindex = $parse(attrs.toggleTabindex)(scope);\n\t\tscope.selectTabindex = $parse(attrs.selectTabindex)(scope);\n\n\t\tvar classes = $parse(attrs.classes)(scope),\n\t\t\ttypes = $parse(attrs.types)(scope),\n\t\t\texcludeClass = attrs.excludeClass;\n\n\t\tactivate();\n\n\t\t///////////////////////////////////////////\n\n\t\tfunction activate() {\n\t\t\tinitializeEquipment();\n\t\t\tequipmentService.getEquipmentSetData().then(function () {\n\t\t\t\tif (excludeClass) {\n\t\t\t\t\tequipmentService.removeClass(excludeClass);\n\t\t\t\t}\n\t\t\t\t//if classes or types initializes correctly when switching from view mode to edit mode\n\t\t\t\tscope.equipment.classes = equipmentService.getEquipmentClasses(classes);\n\t\t\t\tscope.equipment.types = equipmentService.getEquipmentTypes(types);\n\t\t\t\tscope.equipment.classMode = $parse(attrs.isClassMode)(scope);\n\t\t\t\tscope.equipment.isDualMode = attrs.isDualMode ? $parse(attrs.isDualMode)(scope) : true;\n\n\t\t\t\tscope.cached = {\n\t\t\t\t\tclasses: equipmentService.getEquipmentClasses($parse(attrs.classes)(scope)),\n\t\t\t\t\ttypes: equipmentService.getEquipmentTypes($parse(attrs.types)(scope))\n\t\t\t\t};\n\t\t\t});\n\n\t\t\tscope.$on(eventNameService.equipmentSelect.equipmentParsed, onEquipmentParsed);\n\t\t\tscope.$on(eventNameService.equipmentSelect.emptySearchInitialized, onEmptySearchInitialized);\n\t\t\tscope.$on(eventNameService.equipmentSelect.closeAndOpen, onCloseAndOpen);\n\t\t}\n\n\t\tfunction initializeEquipment() {\n\t\t\tscope.equipment = {\n\t\t\t\tclasses: null,\n\t\t\t\ttypes: null,\n\t\t\t\tclassMode: $parse(attrs.isClassMode)(scope),\n\t\t\t\tisDualMode: attrs.isDualMode ? $parse(attrs.isDualMode)(scope) : true\n\t\t\t};\n\t\t}\n\n\t\tfunction onEquipmentParsed() {\n\t\t\t$log.debug('Equipment-select directive: onEquipmentParsed called');\n\t\t\tscope.cached = {\n\t\t\t\tclasses: equipmentService.getEquipmentClasses($parse(attrs.classes)(scope)),\n\t\t\t\ttypes: equipmentService.getEquipmentTypes($parse(attrs.types)(scope))\n\t\t\t};\n\t\t\tif (angular.mock) $log.debug('scope.cached dump: ' + angular.mock.dump(scope.cached));\n\n\t\t\tif (scope.cached.classes.length > 0) {\n\t\t\t\tscope.equipment.classes = scope.cached.classes;\n\t\t\t} else if (scope.cached.types.length > 0) {\n\t\t\t\tscope.equipment.types = scope.cached.types;\n\t\t\t}\n\t\t\tscope.equipment.classMode = $parse(attrs.isClassMode)(scope);\n\t\t}\n\n\t\tfunction onCloseAndOpen() {\n\t\t\telement.find('.select2-container').select2('close');\n\t\t\topenEquipmentDropdown(scope);\n\t\t}\n\n\t\tfunction onEmptySearchInitialized() {\n\t\t\t$log.debug('onEmptySearchInitialized called');\n\t\t\tinitializeEquipment();\n\t\t\topenEquipmentDropdown(scope);\n\t\t}\n\t}\n\n\tfunction postLink (scope, element, attrs) {\n\t\tvar typeSelectInputSelector = 'input[id*=searchEquipmentTypesSelect2]',\n\t\t\tclassSelectInputSelector = 'input[id*=searchEquipmentClassesSelect2]',\n\t\t\tdivContainerPrevScrollPosition;\n\n\t\tscope.toggle = function () {\n\t\t\tif (scope.equipment) {\n\t\t\t\tscope.equipment.classMode = !scope.equipment.classMode;\n\n\t\t\t\tif (scope.equipment.classMode) {\n\t\t\t\t\tscope.cached.types = angular.copy(scope.equipment.types);\n\t\t\t\t\tscope.equipment.types = [];\n\n\t\t\t\t\tif (scope.cached.classes && scope.cached.classes.length > 0) {\n\t\t\t\t\t\tscope.equipment.classes = angular.copy(scope.cached.classes);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tscope.cached.classes = angular.copy(scope.equipment.classes);\n\t\t\t\t\tscope.equipment.classes = [];\n\n\t\t\t\t\tif (scope.cached.types && scope.cached.types.length > 0) {\n\t\t\t\t\t\tscope.equipment.types = angular.copy(scope.cached.types);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\topenEquipmentDropdown(scope);\n\n\t\t\t\t//TODO: Update for sticky values\n\t\t\t\tscope.$emit('SearchEquipmentSetToggleMode');\n\t\t\t}\n\t\t};\n\n\t\tscope.$watch('equipment.classMode', function (value) {\n\t\t\tif (value) {\n\t\t\t\tscope.filterButtonText = 'any';\n\t\t\t} else {\n\t\t\t\tscope.filterButtonText = 'only';\n\t\t\t}\n\t\t});\n\n\t\telement.find(typeSelectInputSelector + ',' + classSelectInputSelector).on('select2-blur', function () {\n\t\t\t//TODO: Update for sticky values\n\t\t\tscope.$emit('SearchEquipmentSetBlur');\n\t\t});\n\n\t\telement.parents('div').scroll(function () {\n\t\t\tvar divContainerCurrentScrollTopPos = $(this).scrollTop();\n\n\t\t\tif (divContainerPrevScrollPosition !== divContainerCurrentScrollTopPos) {\n\t\t\t\telement.find('.select2-container').select2('close');\n\t\t\t\tdivContainerPrevScrollPosition = divContainerCurrentScrollTopPos;\n\t\t\t}\n\t\t});\n\n\t\tscope.$watchCollection('equipment.classes', function (classes) {\n\t\t\tif (classes && attrs.classes) {\n\t\t\t\t$parse(attrs.classes).assign(scope, _.pluck(classes, 'id'));\n\t\t\t\tif (attrs.types && classes.length > 0) { //If types configured and classes selected, clear types model\n\t\t\t\t\t$parse(attrs.types).assign(scope, []);\n\t\t\t\t}\n\t\t\t\tscope.m.equipmentOptions.equipmentValidation.invalid = false;\n\t\t\t\tscope.m.equipmentOptions.equipmentValidation.message = '';\n\t\t\t}\n\t\t\t$log.debug('Equipment-select directive: classes watch executed');\n\t\t});\n\n\t\tscope.$watchCollection('equipment.types', function (types) {\n\t\t\tif (types && attrs.types) {\n\t\t\t\t$parse(attrs.types).assign(scope, _.pluck(types, 'id'));\n\t\t\t\tif (attrs.classes && types.length > 0) { //If classes configured and types selected, clear classes model\n\t\t\t\t\t$parse(attrs.classes).assign(scope, []);\n\t\t\t\t}\n\t\t\t\tscope.m.equipmentOptions.equipmentValidation.invalid = false;\n\t\t\t\tscope.m.equipmentOptions.equipmentValidation.message = '';\n\t\t\t}\n\t\t\t$log.debug('Equipment-select directive: types watch executed');\n\t\t});\n\n\t\tscope.$watch('m.disableEquipmentSelect.disable', function() {\n\t\t\tif (scope.m.disableEquipmentSelect.disable === true){\n\t\t\t\telement.find('.select2-container').select2('enable', false);\n\t\t\t} else{\n\t\t\t\telement.find('.select2-container').select2('enable', true);\n\t\t\t}\n\t\t});\n\n\t\tscope.$watch('m.equipmentOptions.equipmentValidation.invalid', function (){\n\t\t\tif (scope.m.equipmentOptions.equipmentValidation.invalid){\n\t\t\t\telement.find('.select2-container').addClass('ng-invalid-input');\n\t\t\t} else {\n\t\t\t\telement.find('.select2-container').removeClass('ng-invalid-input');\n\t\t\t}\n\t\t});\n\t}\n\n\tfunction getTypeOptions(scope) {\n\t\tvar options = equipmentService.getSelect2BaseOptions();\n\t\toptions.width = '100%';\n\t\toptions.tokenSeparators = [','];\n\t\toptions.selectOnBlur = false; // disable autoselect on blur (i.e. Applies only for bluring by clicking outside of the dropdown)\n\t\t//options.externalClickTarget = 'div.content'; //Commented out because it was suppressing the onblur\n\t\toptions.placeholder = 'e.g. Van Conestoga';\n\t\toptions.query = equipmentService.searchTypes;\n\t\toptions.disableAutoSelectFirstOptionWhenEmpty = true;\n\t\toptions.createSearchChoice = function (term) {\n\t\t\tvar currentTypeCodes = $('#searchEquipmentTypesSelect2' + scope.inputId).val(),\n\t\t\t\tselectedEquipment = equipmentService.getEquipmentTypes(currentTypeCodes),\n\t\t\t\tresult = equipmentService.createTypeItem(term, selectedEquipment);\n\n\t\t\treturn result;\n\t\t};\n\t\toptions.sortResults = equipmentService.sortTypes;\n\n\t\treturn options;\n\t}\n\n\tfunction getClassOptions(scope) {\n\t\tvar options = equipmentService.getSelect2BaseOptions();\n\t\toptions.width = '100%';\n\t\toptions.tokenSeparators = [','];\n\t\toptions.selectOnBlur = false; // disable autoselect on blur (i.e. Applies only for bluring by clicking outside of the dropdown)\n\t\t//options.externalClickTarget = 'div.content'; //Commented out because it was suppressing the onblur\n\t\toptions.placeholder = 'e.g. Flatbeds';\n\t\toptions.query = equipmentService.searchClasses;\n\t\toptions.disableAutoSelectFirstOptionWhenEmpty = true;\n\t\toptions.createSearchChoice = function (term) {\n\t\t\tvar currentClassCodes = $('#searchEquipmentClassesSelect2' + scope.inputId).val(),\n\t\t\t\tselectedEquipment = equipmentService.getEquipmentClasses(currentClassCodes),\n\t\t\t\tresult = equipmentService.createClassItem(term, selectedEquipment);\n\n\t\t\treturn result;\n\t\t};\n\t\toptions.sortResults = equipmentService.sortClasses;\n\n\t\treturn options;\n\t}\n\n\tfunction openEquipmentDropdownForSelectedMode(scope) {\n\t\tvar currentSelectFilterId = '#' + (scope.equipment.classMode ? 'searchEquipmentClassesSelect2' : 'searchEquipmentTypesSelect2') + scope.inputId;\n\t\t$(currentSelectFilterId).select2('open');\n\t}\n\n\tfunction openEquipmentDropdown(scope) {\n\t\tif (scope.equipment.isDualMode) {\n\t\t\tsetTimeout(function () {\n\t\t\t\topenEquipmentDropdownForSelectedMode(scope);\n\t\t\t}, 0);\n\t\t} else {\n\t\t\topenEquipmentDropdownForSelectedMode(scope);\n\t\t}\n\t}\n})();\n","'use strict';\n(function () {\n\tangular.module('dat.shared-components.equipment')\n\t\t.factory('EquipmentService', equipmentService);\n\n\tequipmentService.$inject = ['$http', '$q', '$log'];\n\n\tfunction equipmentService($http, $q, $log) {\n\t\tvar equipmentService = {\n\t\t\tgetEquipmentSetData: getEquipmentSetData,\n\t\t\tremoveClass: removeClass,\n\t\t\tsearchClasses: searchClasses,\n\t\t\tsearchTypes: searchTypes,\n\t\t\tsearch: search,\n\t\t\tgetEquipmentTypes: getEquipmentTypes,\n\t\t\tgetEquipmentClasses: getEquipmentClasses,\n\t\t\tgetSelect2BaseOptions: getSelect2BaseOptions,\n\t\t\tsortClasses: sortClasses,\n\t\t\tsortTypes: sortTypes,\n\t\t\tcreateTypeItem: createTypeItem,\n\t\t\tcreateClassItem: createClassItem\n\t\t};\n\n\t\tvar validFirstCharsTypes = 'ABCDFHILMNOPRSTV',\n\t\t\tvalidSecondCharsTypes = '23ABCDFGHILMNOPRSTUVWXZ',\n\t\t\tvalidSingleCharTypes = 'CFRV',\n\t\t\tvalidCharsForClasses = 'BCDFKNORSTVZ',\n\t\t\ttypeTerm = '',\n\t\t\tclassTerm = '',\n\t\t\tequipmentSetData = null,\n\t\t\tgetEquipmentSetDataPromise;\n\n\t\t// Important note: It is a good idea to have the angular route resolve on equipmentService.getEquipmentSetData() if possible\n\t\t// otherwise, depending on the application using this component, there may be issues\n\t\t$log.debug('equipmentService service called');\n\t\tequipmentService.getEquipmentSetData();\n\n\t\treturn equipmentService;\n\n\t\t/////////////////////////\n\n\t\tfunction sortBy(prop) {\n\t\t\treturn function (a, b) {\n\t\t\t\tif (a[prop] > b[prop]) {\n\t\t\t\t\treturn 1;\n\t\t\t\t} else if (a[prop] < b[prop]) {\n\t\t\t\t\treturn -1;\n\t\t\t\t}\n\n\t\t\t\treturn 0;\n\t\t\t};\n\t\t}\n\n\t\tfunction getValidDoubleTerms() {\n\t\t\tvar result = [],\n\t\t\t\ttermItem1 = typeTerm[0],\n\t\t\t\ttermItem2 = typeTerm[1],\n\t\t\t\ttermIndex1 = validFirstCharsTypes.indexOf(termItem1),\n\t\t\t\ttermIndex2 = validSecondCharsTypes.indexOf(termItem2);\n\n\t\t\tif (termIndex1 >= 0 || termIndex2 >= 0) {\n\t\t\t\tresult.push(typeTerm);\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\n\t\tfunction createTypeTerms() {\n\t\t\tif (typeTerm.length == 1) {\n\t\t\t\tif (validSingleCharTypes.indexOf(typeTerm) >= 0) {\n\t\t\t\t\treturn [typeTerm];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (typeTerm.length == 2) {\n\t\t\t\treturn getValidDoubleTerms();\n\t\t\t}\n\n\t\t\treturn [];\n\t\t}\n\n\t\tfunction createCompositeItem(source) {\n\t\t\tvar compositeTerm = '',\n\t\t\t\tcompositeId = '';\n\n\t\t\tangular.forEach(source, function (value) {\n\t\t\t\tif (compositeTerm === '') {\n\t\t\t\t\tcompositeTerm += value.text;\n\t\t\t\t\tcompositeId += value.id;\n\t\t\t\t} else {\n\t\t\t\t\tcompositeTerm += '; ' + value.text;\n\t\t\t\t\tcompositeId += ';' + value.id;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (compositeTerm.split(';').length === source.length) {\n\t\t\t\treturn {id: compositeId, text: compositeTerm};\n\t\t\t} else {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tfunction areValidTerms(terms) {\n\t\t\tvar termItem, termIndex, i;\n\t\t\tvar validTerms = true;\n\n\t\t\tfor (i = 0; i < terms.length; i++) {\n\t\t\t\ttermItem = terms[i];\n\t\t\t\ttermIndex = validCharsForClasses.indexOf(termItem);\n\t\t\t\tif (termIndex == -1) {\n\t\t\t\t\tvalidTerms = false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn validTerms;\n\t\t}\n\n\t\tfunction createClassTerms() {\n\t\t\tvar terms = uniqueTerms(classTerm).split(''),\n\t\t\t\tvalidTerms = areValidTerms(terms);\n\n\t\t\tif (!validTerms) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\treturn terms;\n\t\t}\n\n\t\tfunction uniqueTerms(term) {\n\t\t\tvar terms = term.split('').sort(),\n\t\t\t\tlen = terms.length,\n\t\t\t\tresult = [];\n\n\t\t\tif (len == 2) {\n\t\t\t\tif (terms[0] === terms[1]) {\n\t\t\t\t\treturn terms[0];\n\t\t\t\t} else {\n\t\t\t\t\treturn term;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tresult.push(terms[0]);\n\n\t\t\tfor (var i = 1; i < len; i++) {\n\t\t\t\tif (terms[i] !== terms[i - 1]) {\n\t\t\t\t\tresult.push(terms[i]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result.join('');\n\t\t}\n\n\t\tfunction findByCode(code, array) {\n\t\t\treturn _.find(array, function (equipObj) {\n\t\t\t\treturn equipObj.id == code;\n\t\t\t});\n\t\t}\n\n\t\tfunction findByCodesArray(codesArray, array) {\n\t\t\tvar results = [], match;\n\n\t\t\tangular.forEach(codesArray, function (code) {\n\t\t\t\tmatch = findByCode(code, array);\n\t\t\t\tif (match) {\n\t\t\t\t\tresults.push(match);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn results;\n\t\t}\n\n\t\tfunction getEquipmentSetData() {\n\t\t\t$log.debug('getEquipmentSetData called');\n\n\t\t\treturn $q.when(equipmentSetData || getEquipmentSetDataPromise || getEquipmentSet());\n\n\t\t\tfunction getEquipmentSet() {\n\t\t\t\tvar deferred = $q.defer();\n\t\t\t\tgetEquipmentSetDataPromise = deferred.promise;\n\t\t\t\t$http.get('../api/equipment/equipmentOptions').then(function (result) {\n\t\t\t\t\t$log.debug('getEquipmentSetData: Received equipment response');\n\t\t\t\t\tequipmentSetData = result.data;\n\t\t\t\t\tdeferred.resolve(equipmentSetData);\n\t\t\t\t});\n\n\t\t\t\treturn deferred.promise;\n\t\t\t}\n\t\t}\n\n\t\tfunction removeClass(name) {\n\t\t\tequipmentSetData.classes = _.reject(equipmentSetData.classes, function (classObj) {\n\t\t\t\treturn classObj.id == name;\n\t\t\t});\n\t\t}\n\n\t\tfunction search(query, array) {\n\t\t\tvar data = {results: []};\n\t\t\tangular.forEach(array, function (item) {\n\t\t\t\tif (item.id.toUpperCase().indexOf(query.term.toUpperCase()) >= 0 || item.text.toUpperCase().indexOf(query.term.toUpperCase()) >= 0) {\n\t\t\t\t\tdata.results.push(item);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn data;\n\t\t}\n\n\t\tfunction searchClasses(query) {\n\t\t\t$q.when(getEquipmentSetDataPromise)\n\t\t\t\t.then(function() {\n\t\t\t\t\tvar data = equipmentService.search(query, equipmentSetData.classes);\n\t\t\t\t\tquery.callback(data);\n\t\t\t\t});\n\t\t}\n\n\t\tfunction searchTypes(query) {\n\t\t\t$q.when(getEquipmentSetDataPromise)\n\t\t\t\t.then(function() {\n\t\t\t\t\tvar data = equipmentService.search(query, equipmentSetData.types);\n\t\t\t\t\tquery.callback(data);\n\t\t\t\t});\n\t\t}\n\n\t\tfunction getEquipmentTypes(codes) {\n\t\t\treturn findByCodesArray(codes, equipmentSetData.types);\n\t\t}\n\n\t\tfunction getEquipmentClasses(codes) {\n\t\t\treturn findByCodesArray(codes, equipmentSetData.classes);\n\t\t}\n\n\t\tfunction getSelect2BaseOptions() {\n\t\t\tvar options = {\n\t\t\t\tdropdownCssClass: 'bigdrop', // apply css class to make dropdown taller\n\t\t\t\tmultiple: true,\n\t\t\t\twidth: '125px',\n\t\t\t\tdropdownAutoWidth: true,\n\t\t\t\tcloseOnSelect: true,\n\t\t\t\tallowClear: false,\n\t\t\t\topenOnEnter: true,\n\t\t\t\tcloseOnTabOut: true,\n\t\t\t\tformatSelection: function (item) {\n\t\t\t\t\treturn item.id;\n\t\t\t\t},\n\t\t\t\tformatResult: function (item, container, query) {\n\t\t\t\t\tvar re = new RegExp('(' + query.term + ')', 'gi');\n\t\t\t\t\tvar text = item.text.replace(re, '$1');\n\n\t\t\t\t\treturn '