{"version":3,"sources":["../main.js","../shared/sorting.js","../shared/paging.js","../utils/ko-utils.js","../shared/search.js","../shared/person.js","../shared/metadata-core.js","../shared/document.js","highlight-block.js","highlight.js","document-topic.js","license-info.js","document-item.js","../shared/single-value-field.js","../shared/multi-value-field.js","../shared/range-field.js","../shared/checkbox-field.js","../shared/direction-storage.js","../shared/single-value-with-storage-field.js","../../jspm_packages/npm/blueimp-file-upload@9.11.2/js/vendor/jquery.ui.widget.js","../../jspm_packages/npm/blueimp-file-upload@9.11.2/js/jquery.fileupload.js","../../jspm_packages/npm/blueimp-file-upload@9.11.2/js/jquery.iframe-transport.js","../../jspm_packages/npm/blueimp-file-upload@9.11.2/js/jquery.fileupload-process.js","../../jspm_packages/npm/blueimp-file-upload@9.11.2/js/jquery.fileupload-validate.js","../shared/fileupload.js","form.js","query-save.js","topic-info.js","../../jspm_packages/github/harvesthq/chosen@1.6.2/chosen.jquery.js","../../jspm_packages/github/harvesthq/chosen@1.6.2.js","../utils/bindings/multiselect.js","../../jspm_packages/github/Pixabay/jQuery-tagEditor@1.0.20/jquery.caret.min.js","../../jspm_packages/github/Pixabay/jQuery-tagEditor@1.0.20/jquery.tag-editor.js","../utils/bindings/multiInput.js","../../jspm_packages/github/iamceege/tooltipster@3.3.0/js/jquery.tooltipster.min.js","../../jspm_packages/github/iamceege/tooltipster@3.3.0.js","../utils/bindings/tooltipster.js","../utils/bindings/onEnter.js","../utils/bindings/loading.js","../utils/bindings/numberFormat.js","../utils/bindings/hover.js","index-bindings.js","index-viewmodel.js"],"names":["define","$","moment","locale","localeData","months","m","format","nominative","split","accusative","indexOf","test","month","window","isPageBeingRefreshed","isOldIE","div","document","createElement","innerHTML","getElementsByTagName","length","on","e","preventDefault","stopPropagation","Function","prototype","inheritsFrom","parentClassOrObject","constructor","this","parent","extend","DocumentPrototype","ElementPrototype","addEventListener","removeEventListener","dispatchEvent","registry","testDate","Date","fromISO","s","tz","p","exec","day","i","L","parseInt","UTC","apply","getDate","setUTCMinutes","getUTCMinutes","NaN","WindowPrototype","Window","HTMLDocument","Element","type","listener","target","unshift","event","currentTarget","returnValue","cancelBubble","srcElement","call","attachEvent","register","index","detachEvent","splice","eventObject","fireEvent","ko","SortingLink","value","initialOrder","self","order","Name","Hint","DisplayName","CanSort","IsReversed","FieldName","SortingOrder","page","constants","SortOrder","None","observable","SortingIcon","pureComputed","Asc","Desc","IsActive","options","asc","desc","none","ArrayToSort","DefaultSortField","DefaultSortOrder","Links","map","SortingLinks","val","alterSorting","newSortingOrder","utils","arrayForEach","link","getSortingModel","fieldName","sortingOrder","sort","sortingLink","sortingModel","sortingFunction","first","second","sortResult","firstValue","unwrapObservable","secondValue","result","firstDefault","secondDefault","Paging","CurrentPage","Page","rateLimit","timeout","method","notify","NewPage","SubscriptionFunction","newValue","IsLoading","data","PageSize","Filter","Sorting","PostData","postJson","LoadUrl","LoadCallback","Items","Count","PagesCount","Math","ceil","ItemsCount","Subscription","subscribe","loadPage","Number","isNaN","isDisposed","valueHasMutated","setCurrentPage","dispose","updateFilter","filterModel","toJS","updateSorting","updatePostData","model","observableArray","fn","pushAll","valuesToPush","underlyingArray","valueWillMutate","arrayPushAll","Search","filter","items","itemIndex","pagingOptions","ItemMappingFunction","mappingFunction","SearchResult","Index","Item","sortingOptions","BeforeLoadCallback","beforeLoadCallback","loadCallback","getFilterModel","count","pageSize","searchUrl","removeAll","clear","search","refresh","Person","person","isRequired","IsRequired","FirstName","MiddleName","LastName","AcademicDegree","AcademicRank","Affiliation","Email","Rank","PlaceOfWork","HasAdditionalInfo","required","onlyIf","IsFilled","toJSON","copy","clone","processInitials","process","name","trimmed","trim","getName","template","replace","charAt","getNameFull","PersonNameTemplateFull","getNameBrief","PersonNameTemplateBrief","getNameCustom","PersonNameTemplateCustom","getNameAndRank","rank","acDegree","acRank","workPlace","affiliation","vals","push","join","getCanonicalName","equals","MetadataCore","metadata","Authors","MinPublicationDate","MaxPublicationDate","DocumentType","DissertationCouncilCode","VakCodes","CollectionNameRudn","DirectionCode","Grnti","AuthorsStringCustom","author","AuthorsStringBrief","AuthorsStringTruncated","authors","PublicationDate","getDateRangeString","DocumentTypeName","getDocumentTypeName","VakCodesString","Description","vakCodes","Document","toggleFavouritesCallback","Id","Metadata","UserFolderId","ExpertOpinionsCount","SourceUrl","FindAlikeUrl","urls","encodeURIComponent","ToggleFavouritesCallback","TextLink","Documents","refreshMetadata","showOverviewReport","url","Reports","OverviewReport","location","href","toggleFavourites","Favourite","DeleteDocumentsFromFolder","AddDocumentsToFolder","DocumentIds","FolderId","block","Text","IsHighlighted","HighlightBlock","highlight","Blocks","item","Order","Percent","licenseInfo","ExpertApprovalDate","ExpertApproved","IsPublic","UserAdditionDate","UserAdded","Highlight","DocumentTopic","LicenseInfo","DocumentItem","Relevance","DocumentTopics","IsExpanded","HasHover","toggleExpansion","SingleValueField","field","disabled","HiddenInputName","Value","IsEnabled","getDescription","unwrap","MultiValueField","HiddenInputNameCompositionType","CanChangeCompositionType","Values","CompositionType","CompositionTypes","ValuesAvailable","CompositionHint","values","displayValue","arrayFirst","Key","selectAll","addValue","removeValue","word","remove","getValueDisplayName","match","setCompositionType","RangeField","compacted","HiddenInputNameMinValue","HiddenInputNameMaxValue","MinValue","MaxValue","IsCompacted","maxValue","showRange","formattingFunction","minValue","CheckboxField","IsChecked","DirectionStorage","storage","code","Storage","Priority","Major","Special","priority","major","spec","DisplayString","displayName","Priorities","Majors","Specs","OldMajor","majors","specials","getCanonicalString","SingleValueWithStorageField","getValue","orig","widget_uuid","widget_slice","Array","slice","cleanData","elems","events","elem","_data","triggerHandler","widget","base","fullName","existingConstructor","basePrototype","proxiedPrototype","namespace","Widget","expr","toLowerCase","element","_createWidget","arguments","version","_proto","_childConstructors","each","prop","_super","_superApply","args","isFunction","__super","__superApply","widgetEventPrefix","widgetName","widgetFullName","child","childPrototype","bridge","key","input","inputIndex","inputLength","hasOwnProperty","undefined","isPlainObject","object","isMethodCall","methodValue","instance","jquery","pushStack","get","error","concat","option","_init","defaultElement","create","uuid","eventNamespace","bindings","hoverable","focusable","_on","destroy","style","ownerDocument","defaultView","parentWindow","_getCreateOptions","_create","_trigger","_getCreateEventData","noop","_destroy","unbind","removeData","camelCase","removeAttr","removeClass","parts","curOption","shift","pop","_setOptions","_setOption","toggleClass","enable","disable","suppressDisabledCheck","handlers","delegateElement","add","handler","handlerProxy","hasClass","guid","eventName","selector","delegate","bind","_off","undelegate","not","_delay","delay","setTimeout","_hoverable","mouseenter","addClass","mouseleave","_focusable","focusin","focusout","callback","Event","originalEvent","trigger","isDefaultPrevented","show","hide","defaultEffect","effectName","effect","hasOptions","isEmptyObject","duration","complete","effects","easing","queue","next","exports","require","jQuery","factory","getDragHandler","isDragOver","dataTransfer","inArray","types","delegatedEvent","dropEffect","support","fileInput","RegExp","navigator","userAgent","xhrFileUpload","ProgressEvent","FileReader","xhrFormDataFileUpload","FormData","blobSlice","Blob","webkitSlice","mozSlice","dropZone","pasteZone","replaceFileInput","paramName","singleFileUploads","limitMultiFileUploads","limitMultiFileUploadSize","limitMultiFileUploadSizeOverhead","sequentialUploads","limitConcurrentUploads","forceIframeTransport","redirect","redirectParamName","postMessage","multipart","maxChunkSize","uploadedBytes","recalculateProgress","progressInterval","bitrateInterval","autoUpload","messages","i18n","message","context","toString","formData","form","serializeArray","fileupload","done","submit","processData","contentType","cache","_specialOptions","_blobSlice","_BitrateTimer","timestamp","now","getTime","loaded","bitrate","getBitrate","interval","timeDiff","_isXHRUpload","_getFormData","isArray","_getTotal","files","total","file","size","_initProgressObject","obj","progress","_progress","_initResponseObject","_response","_onProgress","lengthComputable","_time","floor","chunkSize","_bitrateTimer","_initProgressListener","that","xhr","ajaxSettings","upload","oe","_isInstanceOf","Object","_initXHRData","headers","contentRange","blob","encodeURI","append","uploadName","_initIframeSettings","targetHost","dataType","host","_initDataSettings","_chunkedUpload","_getParamName","_initFormSettings","toUpperCase","formAcceptCharset","attr","_getAJAXSettings","_getDeferredState","deferred","state","isResolved","isRejected","_enhancePromise","promise","success","fail","always","_getXHRPromise","resolveOrReject","dfd","Deferred","resolveWith","rejectWith","abort","_addConvenienceMethods","getPromise","resolveFunc","rejectFunc","_processQueue","pipe","errorThrown","jqXHR","_onSend","processing","response","_getUploadedBytes","range","getResponseHeader","upperBytesPos","testOnly","fs","ub","mcs","o","currentLoaded","ajax","textStatus","_beforeSend","_active","_onDone","_onFail","_onAlways","jqXHRorResult","jqXHRorError","send","_sending","aborted","nextSlot","_slots","resolve","slot","_sequence","_onAdd","paramNameSet","paramNameSlice","fileSet","filesLength","limit","limitSize","overhead","batchSize","j","originalFiles","newData","_replaceFileInput","inputClone","restoreFocus","is","activeElement","fileInputClone","reset","after","detach","focus","el","_handleFileTreeEntry","entry","path","dirReader","errorHandler","successHandler","entries","_handleFileTreeEntries","readEntries","results","isFile","_file","relativePath","isDirectory","createReader","when","_getDroppedFiles","webkitGetAsEntry","getAsEntry","getAsFile","makeArray","_getSingleFileInputFiles","fileName","fileSize","_getFileInputFiles","_onChange","_onPaste","clipboardData","_onDrop","_onDragOver","_onDragEnter","_onDragLeave","_initEventHandlers","dragover","drop","dragenter","dragleave","paste","change","_destroyEventHandlers","reinit","_initSpecialOptions","find","_getRegExp","str","modifiers","_isRegExpOption","_initDataAttributes","attributes","active","reject","then","counter","ajaxTransport","initialIframeSrc","iframe","addParamChar","async","_","completeCallback","fileInputClones","paramNames","contents","firstChild","Error","appendTo","replaceWith","body","ajaxSetup","converters","iframe text","text","iframe json","parseJSON","iframe html","html","iframe xml","xmlDoc","isXMLDoc","parseXML","XMLDocument","xml","iframe script","globalEval","originalAdd","blueimp","processQueue","$this","processActions","_processFile","originalData","chain","settings","func","action","_transformProcessQueue","prefix","_processing","opts","_processingQueue","acceptFileTypes","maxFileSize","minFileSize","maxNumberOfFiles","getNumberOfFiles","validate","uploadCallback","errorCallback","AutoUpload","ResultMessage","IsError","FileName","Progress","UploadCallback","ErrorCallback","CanShowProgress","featureDetection","xhr2","CanSubmit","cancelUploading","init","$dropZone","uploadOptions","Url","MaxFileSize","AcceptFileTypes","DropZoneSelector","currentFile","JSON","parse","ok","FileUpload","SearchForm","fields","SearchModes","File","SearchString","TopicSearchFileName","TopicSearchDocumentId","SearchMode","FormFields","fileUploadOptions","Author","VakCode","IsExtendedFilterFilled","IsEmpty","IsExtended","UploadFileForTopicSearch","dropZoneSelector","token","setSearchMode","Years","getFullYear","reverse","cancelFileSearch","DeleteTopicSearchFile","clearExtended","toggleExtended","searchMode","QuerySave","localization","Localization","IsPopupOpen","QueryInfo","validatedObservable","maxLength","_generateDescription","description","formFields","setQuery","save","isValid","Queries","Save","validation","group","showAllMessages","Terms","TermsString","AbstractChosen","Chosen","SelectParser","__hasProp","options_index","parsed","form_field","browser_is_supported","is_multiple","multiple","set_default_text","set_default_values","setup","set_up_html","register_observers","on_ready","add_node","nodeName","add_group","add_option","_i","_len","_ref","_results","group_position","array_index","label","escapeExpression","title","children","classes","className","childNodes","group_disabled","selected","group_array_index","group_label","cssText","empty","<",">","\"","'","`","chr","select_to_array","select","parser","_this","click_test_action","evt","test_active_click","activate_action","activate_field","active_field","mouse_on_container","results_showing","result_highlighted","allow_single_deselect","disable_search_threshold","disable_search","enable_split_word_search","group_search","search_contains","single_backstroke_delete","max_selected_options","Infinity","inherit_select_classes","display_selected_options","display_disabled_options","include_group_label_in_selected","max_shown_results","POSITIVE_INFINITY","case_sensitive_search","getAttribute","default_text","placeholder_text_multiple","placeholder_text","default_multiple_text","placeholder_text_single","default_single_text","results_none_found","no_results_text","default_no_result_text","choice_label","mouse_enter","mouse_leave","input_focus","container_mousedown","input_blur","blur_test","results_option_build","data_content","content","shown_results","results_data","result_add_group","result_add_option","choice_build","single_set_selected_text","option_el","search_match","include_option_in_results","setAttribute","search_text","outerHTML","group_el","group_match","active_options","results_update_field","results_reset_cleanup","result_clear_highlight","results_build","winnow_results","reset_single_select_options","results_toggle","results_hide","results_show","results_search","escapedSearchText","regex","results_group","searchText","startpos","zregex","no_results_clear","get_search_text","get_search_regex","search_string_match","substr","update_results_content","no_results","winnow_results_set_highlight","escaped_search_string","regex_anchor","regex_flag","search_string","part","choices_count","selected_option_count","choices_click","is_disabled","keyup_checker","stroke","which","keyCode","search_field_scale","backstroke_length","keydown_backstroke","pending_backstroke","result_select","clipboard_event_checker","container_width","width","offsetWidth","search_results_touchstart","touch_started","search_results_mouseover","search_results_touchmove","search_results_mouseout","search_results_touchend","search_results_mouseup","tmp","appendChild","appName","documentMode","chosen","input_field","__extends","ctor","__super__","form_field_jq","current_selectedIndex","selectedIndex","is_rtl","container_classes","container_props","class","id","container","dropdown","search_field","search_results","search_no_results","search_choices","search_container","selected_item","set_tab_index","set_label_behavior","container_mouseup","search_results_mousewheel","keydown_checker","tabIndex","search_field_disabled","close_field","parents","results_reset","delta","deltaY","wheelDelta","detail","scrollTop","clear_backstroke","show_search_field_default","active_container","closest","parsing","readOnly","result_do_highlight","high_bottom","high_top","visible_top","result_highlight","maxHeight","css","position","top","outerHeight","ti","form_field_label","choice","close_link","data-option-array-index","choice_destroy_link_click","before","choice_destroy","result_deselect","high","metaKey","ctrlKey","single_deselect_control_build","pos","result_data","deselected","selected_results","do_high","terms","no_results_html","keydown_arrow","next_sib","nextAll","keyup_arrow","prev_sibs","prevAll","next_available_destroy","siblings","last","_ref1","f_width","style_block","styles","w","outerWidth","module","bindingHandlers","multiselect","valueAccessor","allBindings","viewModel","params","optionsValue","selectedOptions","checked","changedValue","has","valueToAdd","valueToRemove","isObservable","caret","t","n","contentEditable","getSelection","collapse","setSelectionRange","createTextRange","c","moveToElementText","moveStart","move","r","getRangeAt","cloneRange","selectNodeContents","setEnd","endContainer","endOffset","selectionStart","selection","createRange","setEndPoint","a","duplicate","getBookmark","moveToBookmark","tagEditorInput","left","fontSize","fontFamily","fontWeight","letterSpacing","whiteSpace","insertAfter","tagEditor","blur","escape","tag","blur_result","defaults","dregex","delimiter","ed","editor","tags","maxTags","click","off","sel","tagName","startContainer","parentNode","rangeCount","splits","prev","pasted_content","inp","tag_list","clickDelete","new_tag","set_placeholder","placeholder","update_globals","old_tags","onChange","split_cleanup","cb_val","li","sub_tags","old_tag","exceeded","forceLowercase","beforeTagSave","removeDuplicates","closest_tag","d","loc","dist","to","offset","tag_x","tag_y","pageY","height","pageX","insertBefore","beforeTagDelete","animate","animateDelete","aco","ac_select","left_percent","abs","caret_pos","autocomplete","ui","String","fromCharCode","prev_tag","next_tag","$t","shiftKey","initialTags","sortable","distance","cancel","helper","update","multiInput","changes","status","u","bodyOverflowX","callbacks","checkInterval","Content","$el","$elProxy","elProxyPosition","enabled","mouseIsOverProxy","round","random","Status","timerHide","timerShow","$tooltip","iconTheme","theme","f","l","documentElement","v","animation","arrow","arrowColor","autoClose","contentAsHTML","contentCloning","debug","minWidth","maxWidth","functionInit","functionBefore","functionReady","functionAfter","hideOnClick","icon","iconCloning","iconDesktop","iconTouch","interactive","interactiveTolerance","offsetX","offsetY","onlyOne","positionTracker","positionTrackerCallback","restoration","speed","timer","touchDevices","updateAnimation","querySelector","_content_set","_show","_showNow","h","clearTimeout","clearQueue","stop","fadeIn","_content_insert","reposition","_interval_set","setInterval","_interval_cancel","_repositionInfo","dimension","clearInterval","_update","-webkit-transition","-moz-transition","-o-transition","-ms-transition","transition","fadeTo","fadeOut","innerWidth","g","y","b","S","x","T","N","C","k","F","I","q","z","K","A","O","M","D","P","H","scrollLeft","B","parseFloat","R","U","W","X","V","J","grep","elementIcon","elementTooltip","console","log","one","tooltipster","onEnter","keydown","loading","isLoading","timeoutId","numberFormat","$element","resultString","hover","applyBindingsToNode","main","DocumentSearchItem","TopicInfo","SearchIndexViewModel","searchOptions","DocumentCount","initialPageSize","Topics","SearchViewModel","CanSaveQuery","SaveQueryPopup","saveQueryLocalization","saveQuery","getTopicTerms"],"mappings":"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","file":"../search-index-cac70d9455.js","sourcesContent":["define([\"jquery\", \"moment\"],\r\n function($, moment) {\r\n moment.locale(\"ru\");\r\n // Склонение названий месяцев с учетов диапазонов дат (замена для штатного метода moment.js)\r\n moment.localeData().months = function(m, format) {\r\n var months = {\r\n 'nominative': \"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь\"\r\n .split(\"_\"),\r\n 'accusative': \"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря\"\r\n .split(\"_\")\r\n },\r\n nounCase = format.indexOf(\"не раньше\") >= 0 ||\r\n format.indexOf(\"не позже\") >= 0 ||\r\n (/D[oD]?(\\[[^\\[\\]]*\\]|\\s+)+MMMM?/).test(format)\r\n ? \"accusative\"\r\n : \"nominative\";\r\n return months[nounCase][m.month()];\r\n };\r\n // Для предотвращения ajax-ошибки при обновлении страницы,\r\n // переходе по ссылке и т.п. (см. Utils.handleAjaxError)\r\n window.isPageBeingRefreshed = false;\r\n\r\n window.isOldIE = (function() {\r\n var div = document.createElement(\"div\");\r\n div.innerHTML = \"\";\r\n return (div.getElementsByTagName(\"i\").length === 1);\r\n }());\r\n\r\n $(window)\r\n .on(\r\n \"beforeunload\",\r\n function () {\r\n window.isPageBeingRefreshed = true;\r\n });\r\n\r\n // Не даем браузеру открывать файлы при перетаскивании\r\n // на страницу (действие по умолчанию), не работает в <=IE8\r\n $(document)\r\n .on(\r\n \"dragover\",\r\n function(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n );\r\n $(document)\r\n .on(\r\n \"drop\",\r\n function(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n );\r\n\r\n // Для наследования\r\n Function.prototype.inheritsFrom = function(parentClassOrObject) {\r\n if (parentClassOrObject.constructor === Function) {\r\n //Normal Inheritance \r\n this.prototype = new parentClassOrObject;\r\n this.prototype.constructor = this;\r\n this.prototype.parent = parentClassOrObject.prototype;\r\n } else {\r\n //Pure Virtual Inheritance \r\n this.prototype = $.extend(this.prototype, parentClassOrObject);\r\n this.prototype.constructor = this;\r\n this.prototype.parent = parentClassOrObject;\r\n }\r\n return this;\r\n }\r\n\r\n // IE8 не умеет парсить дату, поэтому при создании дат\r\n // нужно пользоваться Date.fromISO\r\n var testDate = new Date(\"2011-06-02T09:34:29+02:00\");\r\n if (!testDate || +testDate !== 1307000069000) {\r\n Date.fromISO = function(s) {\r\n var day,\r\n tz,\r\n rx = /^(\\d{4}\\-\\d\\d\\-\\d\\d([tT ][\\d:\\.]*)?)([zZ]|([+\\-])(\\d\\d):(\\d\\d))?$/,\r\n p = rx.exec(s) || [];\r\n if (p[1]) {\r\n day = p[1].split(/\\D/);\r\n for (var i = 0, L = day.length; i < L; i++) {\r\n day[i] = parseInt(day[i], 10) || 0;\r\n };\r\n day[1] -= 1;\r\n day = new Date(Date.UTC.apply(Date, day));\r\n if (!day.getDate()) return NaN;\r\n if (p[5]) {\r\n tz = (parseInt(p[5], 10) * 60);\r\n if (p[6]) tz += parseInt(p[6], 10);\r\n if (p[4] === \"+\") tz *= -1;\r\n if (tz) day.setUTCMinutes(day.getUTCMinutes() + tz);\r\n }\r\n return day;\r\n }\r\n return NaN;\r\n }\r\n } else {\r\n Date.fromISO = function(s) {\r\n if (!s) {\r\n return null;\r\n }\r\n return new Date(s);\r\n }\r\n };\r\n\r\n !window.addEventListener && (function (WindowPrototype, DocumentPrototype, ElementPrototype, addEventListener, removeEventListener, dispatchEvent, registry) {\r\n WindowPrototype[addEventListener] = DocumentPrototype[addEventListener] = ElementPrototype[addEventListener] = function (type, listener) {\r\n var target = this;\r\n\r\n registry.unshift([target, type, listener, function (event) {\r\n event.currentTarget = target;\r\n event.preventDefault = function () { event.returnValue = false };\r\n event.stopPropagation = function () { event.cancelBubble = true };\r\n event.target = event.srcElement || target;\r\n\r\n listener.call(target, event);\r\n }]);\r\n\r\n this.attachEvent(\"on\" + type, registry[0][3]);\r\n };\r\n WindowPrototype[removeEventListener] = DocumentPrototype[removeEventListener] = ElementPrototype[removeEventListener] = function (type, listener) {\r\n for (var index = 0, register; register = registry[index]; ++index) {\r\n if (register[0] == this && register[1] == type && register[2] == listener) {\r\n return this.detachEvent(\"on\" + type, registry.splice(index, 1)[0][3]);\r\n }\r\n }\r\n };\r\n WindowPrototype[dispatchEvent] = DocumentPrototype[dispatchEvent] = ElementPrototype[dispatchEvent] = function (eventObject) {\r\n return this.fireEvent(\"on\" + eventObject.type, eventObject);\r\n };\r\n })(Window.prototype, HTMLDocument.prototype, Element.prototype, \"addEventListener\", \"removeEventListener\", \"dispatchEvent\", []);\r\n });","define(\r\n [\r\n \"knockout\",\r\n \"jquery\"\r\n ],\r\n function(ko, $) {\r\n function SortingLink(value, initialOrder) {\r\n var self = this;\r\n self.Name = value.Name;\r\n self.Hint = value.Hint;\r\n self.DisplayName = value.DisplayName ? value.DisplayName : value.Name;\r\n self.CanSort = value.CanSort;\r\n self.IsReversed = value.IsReversed || false;\r\n var order = initialOrder && initialOrder.FieldName === self.Name\r\n ? initialOrder.SortingOrder\r\n : window.page.constants.SortOrder.None;\r\n self.SortingOrder = ko.observable(order);\r\n self.SortingIcon = ko.pureComputed(function() {\r\n switch (self.SortingOrder()) {\r\n case window.page.constants.SortOrder.None:\r\n return \"\";\r\n case window.page.constants.SortOrder.Asc:\r\n return \"sort-icon-asc\";\r\n case window.page.constants.SortOrder.Desc:\r\n return \"sort-icon-desc\";\r\n default:\r\n return \"\";\r\n }\r\n },\r\n self);\r\n self.IsActive = ko.pureComputed(function () {\r\n return self.SortingOrder() && self.SortingOrder() !== window.page.constants.SortOrder.None;\r\n });\r\n }\r\n\r\n var Sorting = function(options) {\r\n var self = this;\r\n options = options || {};\r\n self.order = {\r\n asc: window.page.constants.SortOrder.Asc,\r\n desc: window.page.constants.SortOrder.Desc,\r\n none: window.page.constants.SortOrder.None\r\n };\r\n self.ArrayToSort = options.ArrayToSort;\r\n // Настройки для поддержания порядка сортировки (сначала выполнится сортировка по\r\n // заданному полю, потом по DefaultSortField). При остутствии ArrayToSort игнорируются.\r\n self.DefaultSortField = options.DefaultSortField;\r\n self.DefaultSortOrder = options.DefaultSortOrder || window.page.constants.SortOrder.Asc;\r\n\r\n self.Links = $.map(options.SortingLinks,\r\n function(val) {\r\n return new SortingLink(val, options.SortingOrder);\r\n });\r\n\r\n self.alterSorting = function(value) {\r\n var newSortingOrder = self.order.none;\r\n switch (value.SortingOrder()) {\r\n case self.order.none:\r\n newSortingOrder = value.IsReversed ? self.order.desc : self.order.asc;\r\n break;\r\n case self.order.asc:\r\n newSortingOrder = self.order.desc;\r\n break;\r\n case self.order.desc:\r\n newSortingOrder = self.order.asc;\r\n break;\r\n }\r\n value.SortingOrder(newSortingOrder);\r\n ko.utils.arrayForEach(self.Links || [], function(link) {\r\n if (link.Name !== value.Name) {\r\n link.SortingOrder(self.order.none);\r\n }\r\n }); \r\n };\r\n\r\n self.getSortingModel = function() {\r\n var fieldName;\r\n var sortingOrder;\r\n ko.utils.arrayForEach(self.Links || [], function (link) {\r\n if (link.SortingOrder() !== self.order.none) {\r\n fieldName = link.Name;\r\n sortingOrder = link.SortingOrder();\r\n }\r\n });\r\n return fieldName ? { FieldName: fieldName, SortingOrder: sortingOrder } : null;\r\n };\r\n\r\n self.sort = function(sortingLink, parent) {\r\n if (!self.ArrayToSort) {\r\n parent.sort(sortingLink);\r\n return;\r\n }\r\n if (sortingLink) {\r\n self.alterSorting(sortingLink);\r\n }\r\n var sortingModel = self.getSortingModel();\r\n\r\n var sortingFunction = function (first, second, order) {\r\n var sortResult = order === window.page.constants.SortOrder.Asc ? 1 : -1;\r\n if (first == second) {\r\n return 0;\r\n }\r\n return first > second ? sortResult : -sortResult;\r\n }\r\n\r\n if (sortingModel) {\r\n self.ArrayToSort.sort(function (first, second) {\r\n var firstValue = ko.utils.unwrapObservable(first[sortingModel.FieldName]);\r\n var secondValue = ko.utils.unwrapObservable(second[sortingModel.FieldName]);\r\n var result = sortingFunction(firstValue, secondValue, sortingModel.SortingOrder);\r\n if (!result && self.DefaultSortField) {\r\n var firstDefault = ko.utils.unwrapObservable(first[self.DefaultSortField]);\r\n var secondDefault = ko.utils.unwrapObservable(second[self.DefaultSortField]);\r\n result = sortingFunction(firstDefault, secondDefault, self.DefaultSortOrder);\r\n }\r\n return result;\r\n });\r\n }\r\n };\r\n }\r\n return Sorting;\r\n }\r\n);","define(\r\n [\r\n \"knockout\",\r\n \"jquery\",\r\n \"sa-utils\"\r\n ],\r\n function(ko, $, utils) {\r\n var Paging = function(options) {\r\n var self = this;\r\n\r\n // Для правильной работы пейджинга не рекомендуется \r\n // устанавливать CurrentPage напрямую, это нужно делать через loadPage и setCurrentPage\r\n self.CurrentPage = ko.observable(options.Page ? options.Page : 1)\r\n .extend({ rateLimit: { timeout: 250, method: \"notifyWhenChangesStop\" }, notify: \"always\" });\r\n self.NewPage = ko.observable(options.Page ? options.Page : 1);\r\n\r\n self.SubscriptionFunction = function(newValue) {\r\n if (self.IsLoading()) {\r\n return;\r\n }\r\n var data = {\r\n Page: newValue,\r\n PageSize: self.PageSize()\r\n };\r\n\r\n if (self.Filter) {\r\n $.extend(data, { Filter: self.Filter });\r\n }\r\n\r\n if (self.Sorting) {\r\n $.extend(data, { Sorting: self.Sorting });\r\n }\r\n\r\n if (self.PostData) {\r\n $.extend(data, self.PostData);\r\n }\r\n utils.postJson.call(self,\r\n self.LoadUrl,\r\n data,\r\n function(result) {\r\n self.LoadCallback(result.Items, result);\r\n if (result.Count || result.Count === 0) {\r\n self.PagesCount(Math.ceil(result.Count / self.PageSize()));\r\n self.ItemsCount(result.Count);\r\n }\r\n });\r\n }\r\n self.Subscription = self.CurrentPage.subscribe(self.SubscriptionFunction);\r\n\r\n self.PagesCount = ko.observable(Math.ceil(options.ItemsCount / options.PageSize));\r\n self.ItemsCount = ko.observable(options.ItemsCount);\r\n self.PageSize = ko.observable(options.PageSize);\r\n self.IsLoading = ko.observable(false);\r\n self.LoadUrl = options.LoadUrl;\r\n self.LoadCallback = options.LoadCallback;\r\n self.Filter = options.Filter ? options.Filter : null;\r\n self.Sorting = options.Sorting ? options.Sorting : null;\r\n self.PostData = options.PostData ? options.PostData : null;\r\n }\r\n // При вызове метода выполняется загрузка нужной страницы.\r\n Paging.prototype.loadPage = function(page) {\r\n var self = this;\r\n if (!page) {\r\n self.CurrentPage.valueHasMutated();\r\n return;\r\n }\r\n page = Number(page);\r\n if (isNaN(page)) {\r\n return;\r\n }\r\n\r\n if (!self.Subscription || self.Subscription.isDisposed) {\r\n self.Subscription = self.CurrentPage.subscribe(self.SubscriptionFunction);\r\n }\r\n self.CurrentPage(page);\r\n self.NewPage(page);\r\n }\r\n // При вызове метода устанавливается новое значение CurrentPage,\r\n // но загрузка страницы (ajax-вызов) не выполняется.\r\n Paging.prototype.setCurrentPage = function(page) {\r\n var self = this;\r\n if (!page) {\r\n return;\r\n }\r\n page = Number(page);\r\n if (isNaN(page)) {\r\n return;\r\n }\r\n if (self.Subscription && !self.Subscription.isDisposed) {\r\n self.Subscription.dispose();\r\n }\r\n self.CurrentPage(page);\r\n self.NewPage(page);\r\n }\r\n Paging.prototype.updateFilter = function(filterModel) {\r\n var self = this;\r\n self.Filter = ko.toJS(filterModel);\r\n };\r\n Paging.prototype.updateSorting = function(sortingModel) {\r\n var self = this;\r\n self.Sorting = ko.toJS(sortingModel);\r\n }\r\n Paging.prototype.updatePostData = function(model) {\r\n var self = this;\r\n self.PostData = ko.toJS(model);\r\n }\r\n return Paging;\r\n }\r\n);","define(\r\n [\"knockout\"],\r\n function(ko) {\r\n ko.observableArray.fn.pushAll = function(valuesToPush) {\r\n var underlyingArray = this();\r\n this.valueWillMutate();\r\n ko.utils.arrayPushAll(underlyingArray, valuesToPush);\r\n this.valueHasMutated();\r\n return this;\r\n }\r\n }\r\n);","define(\r\n [\r\n \"knockout\",\r\n \"jquery\",\r\n \"scripts/shared/sorting\",\r\n \"scripts/shared/paging\",\r\n \"sa-utils-ko\"\r\n ],\r\n function(ko, $, Sorting, Paging) {\r\n var Search = function(filter, items, options) {\r\n var self = this;\r\n\r\n var itemIndex = 1;\r\n items = items || [];\r\n options = options || {}; \r\n\r\n self.Filter = filter;\r\n self.ItemMappingFunction = options.mappingFunction;\r\n self.SearchResult = ko.observableArray($.map(items,\r\n function(value) {\r\n return { Index: itemIndex++, Item: self.ItemMappingFunction(value) };\r\n }));\r\n self.Sorting = new Sorting(options.sortingOptions);\r\n\r\n self.BeforeLoadCallback = options.beforeLoadCallback;\r\n self.LoadCallback = options.loadCallback;\r\n\r\n var pagingOptions = {\r\n Filter: self.Filter ? self.Filter.getFilterModel() : null,\r\n ItemsCount: options.count || 0,\r\n PageSize: options.pageSize,\r\n LoadUrl: options.searchUrl,\r\n LoadCallback: function(items, result) {\r\n if (typeof self.BeforeLoadCallback === \"function\") {\r\n self.BeforeLoadCallback(items, result);\r\n }\r\n self.SearchResult.removeAll();\r\n itemIndex = (self.Paging.CurrentPage() - 1) * self.Paging.PageSize() + 1;\r\n self.SearchResult.pushAll($.map(items || [],\r\n function(value) {\r\n return { Index: itemIndex++, Item: self.ItemMappingFunction(value) };\r\n }));\r\n if (typeof self.LoadCallback === \"function\") {\r\n self.LoadCallback(items, result);\r\n }\r\n }\r\n };\r\n self.Paging = new Paging(pagingOptions);\r\n }\r\n Search.prototype.clear = function () {\r\n var self = this;\r\n self.Filter.clear();\r\n }\r\n Search.prototype.search = function() {\r\n var self = this;\r\n self.Paging.updateFilter(self.Filter ? self.Filter.getFilterModel() : null);\r\n self.Paging.loadPage(1);\r\n }\r\n Search.prototype.refresh = function () {\r\n var self = this; \r\n self.Paging.loadPage();\r\n }\r\n Search.prototype.sort = function(sortingLink) {\r\n var self = this;\r\n if (self.Paging.IsLoading()) {\r\n return;\r\n }\r\n self.Sorting.alterSorting(sortingLink);\r\n self.Paging.updateSorting(self.Sorting.getSortingModel());\r\n self.Paging.loadPage();\r\n }\r\n return Search;\r\n }\r\n);","define([\"jquery\", \"knockout\", \"sa-ko-validation\"],\r\n function($, ko) {\r\n var Person = function(person, isRequired) {\r\n var self = this;\r\n\r\n person = person || {};\r\n self.IsRequired = !!isRequired;\r\n\r\n self.FirstName = ko.observable(person.FirstName);\r\n self.MiddleName = ko.observable(person.MiddleName);\r\n self.LastName = ko.observable(person.LastName);\r\n\r\n self.AcademicDegree = ko.observable(person.AcademicDegree);\r\n self.AcademicRank = ko.observable(person.AcademicRank);\r\n self.Affiliation = ko.observable(person.Affiliation);\r\n self.Email = ko.observable(person.Email);\r\n self.Rank = ko.observable(person.Rank);\r\n self.PlaceOfWork = ko.observable(person.PlaceOfWork);\r\n\r\n self.HasAdditionalInfo = ko.pureComputed(function() {\r\n return self.AcademicDegree() ||\r\n self.AcademicRank() ||\r\n self.Affiliation() ||\r\n self.Email() ||\r\n self.Rank() ||\r\n self.PlaceOfWork();\r\n });\r\n\r\n self.FirstName.extend({\r\n required: {\r\n onlyIf: function () {\r\n return self.IsRequired ||\r\n self.LastName() ||\r\n self.MiddleName() ||\r\n self.HasAdditionalInfo();\r\n }\r\n }\r\n });\r\n self.LastName.extend({\r\n required: {\r\n onlyIf: function () {\r\n return self.IsRequired ||\r\n self.FirstName() ||\r\n self.MiddleName() ||\r\n self.HasAdditionalInfo();\r\n }\r\n }\r\n });\r\n\r\n self.IsFilled = ko.pureComputed(function() {\r\n return self.LastName() && self.FirstName();\r\n });\r\n }\r\n\r\n Person.prototype.toJSON = function() {\r\n var self = this;\r\n var copy = ko.toJS(self);\r\n delete copy.IsRequired;\r\n delete copy.IsFilled;\r\n return copy;\r\n };\r\n\r\n Person.prototype.clone = function(isRequired) {\r\n var self = this;\r\n return new Person({\r\n FirstName: self.FirstName(),\r\n MiddleName: self.MiddleName(),\r\n LastName: self.LastName(),\r\n AcademicDegree: self.AcademicDegree(),\r\n AcademicRank: self.AcademicRank(),\r\n Affiliation: self.Affiliation(),\r\n Email: self.Email(),\r\n Rank: self.Rank(),\r\n PlaceOfWork: self.PlaceOfWork()\r\n },\r\n isRequired);\r\n }\r\n\r\n // Если пользователь ввел только одну букву в имени или отчестве,\r\n // считаем ее инициалом и добавляем точку\r\n Person.prototype.processInitials = function () {\r\n var self = this;\r\n var process = function(name) {\r\n if (typeof name === 'string') {\r\n var trimmed = $.trim(name);\r\n if (trimmed.length === 1) {\r\n return trimmed + '.';\r\n }\r\n }\r\n return name;\r\n }\r\n self.FirstName(process(self.FirstName()));\r\n self.MiddleName(process(self.MiddleName()));\r\n }\r\n\r\n Person.prototype.getName = function (template) {\r\n var self = this;\r\n var result = template;\r\n result = result.replace(/{firstName}/g, self.FirstName() ? self.FirstName() : \"\");\r\n result = result.replace(/{firstNameInitial}/g, self.FirstName() ? (self.FirstName().charAt(0) + \".\") : \"\");\r\n result = result.replace(/{middleName}/g, self.MiddleName() ? self.MiddleName() : \"\");\r\n result = result.replace(/{middleNameInitial}/g,\r\n self.MiddleName() ? (self.MiddleName().charAt(0) + \".\") : \"\");\r\n result = result.replace(/{lastName}/g, self.LastName() ? self.LastName() : \"\");\r\n return result.trim();\r\n }\r\n\r\n Person.prototype.getNameFull = function () {\r\n var self = this;\r\n return self.getName(window.page.constants.PersonNameTemplateFull);\r\n }\r\n\r\n Person.prototype.getNameBrief = function () {\r\n var self = this;\r\n return self.getName(window.page.constants.PersonNameTemplateBrief);\r\n }\r\n\r\n Person.prototype.getNameCustom = function () {\r\n var self = this;\r\n return self.getName(window.page.constants.PersonNameTemplateCustom);\r\n } \r\n\r\n Person.prototype.getNameAndRank = function() {\r\n var self = this;\r\n var result = self.getNameCustom();\r\n var rank = self.Rank();\r\n if (rank) {\r\n result += \", \" + rank;\r\n }\r\n var acDegree = self.AcademicDegree();\r\n var acRank = self.AcademicRank();\r\n if (acDegree) {\r\n if (acRank) {\r\n result += \", \" + acDegree + \" \" + acRank + \" наук\";\r\n } else {\r\n result += \", \" + acDegree;\r\n }\r\n }\r\n var workPlace = self.PlaceOfWork();\r\n var affiliation = self.Affiliation();\r\n var vals = [];\r\n if (affiliation) {\r\n vals.push('аффиляция: ' + affiliation);\r\n }\r\n if (workPlace) {\r\n vals.push(\"место работы: \" + workPlace);\r\n }\r\n if (vals.length > 0) {\r\n result += \" (\" + vals.join(\", \") + \")\";\r\n }\r\n return result;\r\n }\r\n\r\n // Функция для сравнений\r\n Person.prototype.getCanonicalName = function() {\r\n var self = this;\r\n return \"\" + self.LastName() +\r\n \",\" + self.FirstName() +\r\n \",\" + self.MiddleName() +\r\n \",\" + self.AcademicDegree() +\r\n \",\" + self.AcademicRank() +\r\n \",\" + self.Affiliation() +\r\n \",\" + self.Email() +\r\n \",\" + self.Rank() +\r\n \",\" + self.PlaceOfWork();\r\n }\r\n\r\n Person.prototype.equals = function(person) {\r\n var self = this;\r\n if (!person) {\r\n return false;\r\n }\r\n return self.getCanonicalName() === person.getCanonicalName();\r\n }\r\n\r\n return Person;\r\n });","define(\r\n [\r\n \"knockout\",\r\n \"jquery\",\r\n \"sa-utils\",\r\n \"scripts/shared/person\"\r\n ],\r\n function(ko, $, utils, Person) {\r\n var MetadataCore = function(metadata) {\r\n var self = this;\r\n\r\n metadata = metadata || {};\r\n\r\n self.Name = ko.observable(metadata.Name);\r\n self.Authors = ko.observableArray($.map(metadata.Authors || [],\r\n function(value) {\r\n return new Person(value);\r\n }));\r\n self.MinPublicationDate = ko.observable(Date.fromISO(metadata.MinPublicationDate));\r\n self.MaxPublicationDate = ko.observable(Date.fromISO(metadata.MaxPublicationDate));\r\n self.DocumentType = ko.observable(metadata.DocumentType);\r\n self.DissertationCouncilCode = ko.observable(metadata.DissertationCouncilCode);\r\n self.VakCodes = ko.observableArray(metadata.VakCodes || []);\r\n self.CollectionNameRudn = ko.observable(metadata.CollectionNameRudn);\r\n self.DirectionCode = ko.observable(metadata.DirectionCode);\r\n // TODO: заглушка на будущее\r\n self.Grnti = ko.observable(null);\r\n\r\n self.AuthorsStringCustom = ko.pureComputed(function() {\r\n return ($.map(self.Authors() || [],\r\n function (author) {\r\n return author.getNameCustom();\r\n })).join(\", \");\r\n },\r\n self);\r\n\r\n self.AuthorsStringBrief = ko.pureComputed(function () {\r\n return ($.map(self.Authors() || [],\r\n function(author) {\r\n return author.getNameBrief();\r\n })).join(\", \");\r\n },\r\n self);\r\n\r\n self.AuthorsStringTruncated = ko.pureComputed(function() {\r\n var authors = self.Authors() || [];\r\n if (authors.length > 0) {\r\n var author = authors[0].getNameBrief();\r\n if (authors.length > 1) {\r\n author = author + \" и др.\";\r\n }\r\n return author;\r\n }\r\n return \"\";\r\n },\r\n self);\r\n\r\n self.PublicationDate = ko.pureComputed(function() {\r\n return utils.getDateRangeString(self.MinPublicationDate(), self.MaxPublicationDate());\r\n },\r\n self);\r\n\r\n self.DocumentTypeName = ko.pureComputed(function() {\r\n return utils.getDocumentTypeName(self.DocumentType());\r\n },\r\n self);\r\n\r\n self.VakCodesString = ko.pureComputed(function () {\r\n return (self.VakCodes() || []).join(\", \");\r\n });\r\n\r\n self.Description = ko.pureComputed(function () {\r\n var result = self.AuthorsStringCustom() + \", \" + self.DocumentTypeName() + \", \" + self.PublicationDate();\r\n var vakCodes = self.VakCodes() || [];\r\n if (vakCodes.length > 0) {\r\n result += \", \" + vakCodes.join(\", \");\r\n }\r\n if (self.DissertationCouncilCode()) {\r\n result += \", \" + self.DissertationCouncilCode();\r\n }\r\n return result;\r\n },\r\n self);\r\n }\r\n MetadataCore.prototype.refresh = function(metadata) {\r\n var self = this;\r\n self.Name(metadata.Name);\r\n self.Authors($.map(metadata.Authors || [],\r\n function(value) {\r\n return new Person(value);\r\n }));\r\n self.MinPublicationDate(Date.fromISO(metadata.MinPublicationDate));\r\n self.MaxPublicationDate(Date.fromISO(metadata.MaxPublicationDate));\r\n self.DocumentType(metadata.DocumentType);\r\n self.VakCodes(metadata.VakCodes || []);\r\n self.DissertationCouncilCode(metadata.DissertationCouncilCode);\r\n self.CollectionNameRudn(metadata.CollectionNameRudn);\r\n self.DirectionCode(metadata.DirectionCode);\r\n }\r\n return MetadataCore;\r\n });","define(\r\n [\r\n \"knockout\",\r\n \"sa-utils\",\r\n \"scripts/shared/metadata-core\"\r\n ],\r\n function(ko, utils, MetadataCore) {\r\n var Document = function(document, toggleFavouritesCallback) {\r\n var self = this;\r\n\r\n document = document || {};\r\n\r\n self.Id = document.Id;\r\n\r\n self.Metadata = new MetadataCore(document.Metadata);\r\n self.Rank = document.Rank;\r\n \r\n self.UserFolderId = ko.observable(document.UserFolderId);\r\n self.ExpertOpinionsCount = ko.observable(document.ExpertOpinionsCount || 0);\r\n self.SourceUrl = document.SourceUrl;\r\n self.FindAlikeUrl = window.page.urls.Search.Index +\r\n \"?documentId=\" + encodeURIComponent(self.Id);\r\n\r\n self.ToggleFavouritesCallback = toggleFavouritesCallback;\r\n\r\n self.TextLink = ko.pureComputed(function() {\r\n return window.page.urls.Documents.Document + \"?id=\" + self.Id;\r\n });\r\n self.Description = ko.pureComputed(function () {\r\n return self.Metadata.Name() + ', ' + self.Metadata.Description();\r\n });\r\n }\r\n Document.prototype.refreshMetadata = function(metadata) {\r\n var self = this;\r\n self.Metadata.refresh(metadata);\r\n }\r\n Document.prototype.showOverviewReport = function() {\r\n var self = this;\r\n var url = window.page.urls.Reports.OverviewReport + \"?documentId=\" + self.Id;\r\n location.href = url;\r\n };\r\n Document.prototype.toggleFavourites = function() {\r\n var self = this;\r\n var url = self.UserFolderId()\r\n ? window.page.urls.Favourite.DeleteDocumentsFromFolder\r\n : window.page.urls.Favourite.AddDocumentsToFolder;\r\n var data = self.UserFolderId()\r\n ? { DocumentIds: [ self.Id ], FolderId: self.UserFolderId() }\r\n : { DocumentIds: [ self.Id ]};\r\n\r\n utils.postJson.call(self,\r\n url,\r\n data,\r\n function(result) {\r\n self.UserFolderId(result.Id ? result.Id : null);\r\n if (typeof self.ToggleFavouritesCallback === \"function\") {\r\n self.ToggleFavouritesCallback();\r\n }\r\n });\r\n }\r\n return Document;\r\n }\r\n);","define([],\r\n function() {\r\n var HighlightBlock = function(block) {\r\n var self = this;\r\n\r\n block = block || {};\r\n self.Text = block.Text;\r\n self.IsHighlighted = block.IsHighlighted;\r\n }\r\n return HighlightBlock;\r\n }\r\n);","define(\r\n [\r\n \"jquery\",\r\n \"scripts/search/highlight-block\"\r\n ],\r\n function($, HighlightBlock) {\r\n var Highlight = function(highlight) {\r\n var self = this;\r\n\r\n highlight = highlight || {};\r\n\r\n self.Blocks = $.map(highlight.Blocks || [],\r\n function(value) {\r\n return new HighlightBlock(value);\r\n });\r\n }\r\n return Highlight;\r\n }\r\n);","define([],\r\n function() {\r\n var DocumentTopic = function(item) {\r\n var self = this;\r\n\r\n item = item || {};\r\n\r\n self.Order = item.Order;\r\n self.Percent = item.Percent;\r\n }\r\n return DocumentTopic;\r\n }\r\n);","define([], function () {\r\n var LicenseInfo = function (licenseInfo) {\r\n var self = this;\r\n\r\n licenseInfo = licenseInfo || {};\r\n\r\n self.ExpertApprovalDate = licenseInfo.ExpertApprovalDate;\r\n self.ExpertApproved = licenseInfo.ExpertApproved;\r\n self.IsPublic = licenseInfo.IsPublic;\r\n self.UserAdditionDate = licenseInfo.UserAdditionDate;\r\n self.UserAdded = licenseInfo.UserAdded;\r\n } \r\n return LicenseInfo;\r\n }\r\n);","define(\r\n [\r\n \"jquery\",\r\n \"scripts/shared/document\",\r\n \"scripts/search/highlight\",\r\n \"scripts/search/document-topic\",\r\n \"scripts/search/license-info\"\r\n ],\r\n function($, Document, Highlight, DocumentTopic, LicenseInfo) {\r\n var DocumentItem = function(item, toggleFavouritesCallback) {\r\n var self = this;\r\n\r\n item = item || {};\r\n\r\n self.Document = new Document(item.Document, toggleFavouritesCallback);\r\n self.Highlight = item.Highlight ? new Highlight(item.Highlight) : null;\r\n self.Relevance = item.Relevance;\r\n self.DocumentTopics = item.DocumentTopics ?\r\n $.map(item.DocumentTopics || [],\r\n function(value) {\r\n return new DocumentTopic(value);\r\n })\r\n : null;\r\n self.LicenseInfo = item.LicenseInfo ? new LicenseInfo(item.LicenseInfo) : null;\r\n\r\n self.IsExpanded = ko.observable(false);\r\n self.HasHover = ko.observable(false);\r\n }\r\n DocumentItem.prototype.toggleExpansion = function() {\r\n var self = this;\r\n self.IsExpanded(!self.IsExpanded());\r\n }\r\n return DocumentItem;\r\n }\r\n);","define([\"knockout\"],\r\n function(ko) {\r\n var SingleValueField = function(field, disabled) {\r\n var self = this;\r\n\r\n field = field || {};\r\n disabled = disabled || false;\r\n\r\n self.Name = field.Name;\r\n self.DisplayName = field.DisplayName ? field.DisplayName : field.Name;\r\n self.HiddenInputName = field.HiddenInputName;\r\n self.Value = ko.observable(field.Value);\r\n self.Hint = field.Hint;\r\n\r\n self.IsEnabled = ko.observable(!disabled);\r\n }\r\n SingleValueField.prototype.getDescription = function () {\r\n var self = this;\r\n var value = ko.unwrap(self.Value);\r\n if (!value) {\r\n return \"\";\r\n }\r\n return self.DisplayName + \": \" + value;\r\n }\r\n SingleValueField.prototype.clear = function() {\r\n var self = this;\r\n self.Value(null);\r\n }\r\n SingleValueField.prototype.toJSON = function() {\r\n var copy = ko.toJS(this);\r\n if (copy.IsEnabled) {\r\n delete copy.Hint;\r\n delete copy.DisplayName;\r\n delete copy.IsEnabled;\r\n return copy;\r\n } else {\r\n return null;\r\n }\r\n }\r\n return SingleValueField;\r\n });","define([\"jquery\", \"knockout\"],\r\n function($, ko) {\r\n var MultiValueField = function(field, disabled) {\r\n var self = this;\r\n\r\n field = field || {};\r\n disabled = disabled || false;\r\n\r\n self.Name = field.Name;\r\n self.DisplayName = field.DisplayName ? field.DisplayName : field.Name;\r\n self.HiddenInputName = field.HiddenInputName;\r\n self.HiddenInputNameCompositionType = field.HiddenInputNameCompositionType;\r\n self.CanChangeCompositionType = field.CanChangeCompositionType;\r\n self.Value = ko.observable();\r\n self.Values = ko.observableArray(field.Values ? field.Values : []);\r\n self.CompositionType = ko.observable(field.CompositionType);\r\n self.CompositionTypes = field.CompositionTypes;\r\n self.ValuesAvailable = field.ValuesAvailable;\r\n self.Hint = field.Hint;\r\n self.CompositionHint = field.CompositionHint;\r\n\r\n self.IsEnabled = ko.observable(!disabled);\r\n }\r\n MultiValueField.prototype.getDescription = function () {\r\n var self = this;\r\n var values = ko.unwrap(self.Values) || [];\r\n if (values.length === 0) {\r\n return \"\";\r\n }\r\n if (self.ValuesAvailable) {\r\n values = $.map(values,\r\n function(val) {\r\n var displayValue = ko.utils.arrayFirst(self.ValuesAvailable || [],\r\n function(item) {\r\n return item.Key === val;\r\n });\r\n return displayValue ? displayValue.Value : null;\r\n });\r\n }\r\n return self.DisplayName + \": \" + values.join(', ');\r\n }\r\n MultiValueField.prototype.clear = function() {\r\n var self = this;\r\n self.Value(null);\r\n self.Values([]);\r\n }\r\n MultiValueField.prototype.selectAll = function() {\r\n var self = this;\r\n self.Values($.map(self.ValuesAvailable,\r\n function(item) {\r\n return item.Key;\r\n }));\r\n }\r\n MultiValueField.prototype.toJSON = function() {\r\n var self = this;\r\n if (self.IsEnabled) {\r\n return {\r\n Name: self.Name,\r\n Values: self.Values,\r\n CompositionType: self.CompositionType\r\n };\r\n } else {\r\n return null;\r\n }\r\n };\r\n MultiValueField.prototype.addValue = function() {\r\n var self = this;\r\n var val = self.Value();\r\n if (self.ValuesAvailable && self.ValuesAvailable.length > 0) {\r\n var match = ko.utils.arrayFirst(self.ValuesAvailable,\r\n function(item) {\r\n return item.Key === val;\r\n });\r\n if (!match)\r\n return;\r\n }\r\n if (val != null && val != undefined && self.Values.length < 10 && self.Values.indexOf(val) < 0) {\r\n self.Values.push(val);\r\n }\r\n };\r\n MultiValueField.prototype.removeValue = function(word) {\r\n this.Values.remove(word);\r\n };\r\n MultiValueField.prototype.getValueDisplayName = function(value) {\r\n var self = this;\r\n\r\n var match = ko.utils.arrayFirst(self.ValuesAvailable,\r\n function(item) {\r\n return item.Key === value;\r\n });\r\n\r\n if (match)\r\n return match.Value;\r\n else\r\n return \"\";\r\n };\r\n MultiValueField.prototype.setCompositionType = function(type) {\r\n var self = this;\r\n self.CompositionType(type);\r\n }\r\n\r\n return MultiValueField;\r\n });","define([\"knockout\"],\r\n function(ko) {\r\n var RangeField = function(field, disabled, compacted) {\r\n var self = this;\r\n\r\n field = field || {};\r\n disabled = disabled || false;\r\n compacted = compacted || false;\r\n\r\n self.Name = field.Name;\r\n self.DisplayName = field.DisplayName ? field.DisplayName : field.Name;\r\n self.HiddenInputNameMinValue = field.HiddenInputNameMinValue;\r\n self.HiddenInputNameMaxValue = field.HiddenInputNameMaxValue;\r\n self.MinValue = ko.observable(field.MinValue);\r\n self.MaxValue = ko.observable(field.MaxValue);\r\n self.Hint = field.Hint;\r\n\r\n self.IsCompacted = ko.observable(compacted && !field.MaxValue);\r\n self.IsEnabled = ko.observable(!disabled);\r\n\r\n self.MinValue.subscribe(function (newValue) { \r\n // В компактном виде левая граница управляет обеими\r\n if (self.IsCompacted()) {\r\n self.MaxValue(newValue);\r\n return;\r\n }\r\n // Следим, чтобы левая граница была <= правой\r\n var maxValue = self.MaxValue();\r\n if (newValue !== null && maxValue != null && newValue > maxValue) {\r\n self.MaxValue(newValue);\r\n }\r\n });\r\n self.MaxValue.subscribe(function (newValue) {\r\n if (newValue === null) {\r\n return;\r\n }\r\n \r\n // Если не совпадаем с левой границей, разворачиваем\r\n if (self.IsCompacted()\r\n && newValue != self.MinValue()) {\r\n self.IsCompacted(false);\r\n }\r\n // Следим, чтобы левая граница была <= правой\r\n if (newValue < self.MinValue()) {\r\n self.MinValue(newValue);\r\n }\r\n });\r\n self.IsCompacted.subscribe(function (newValue) {\r\n // Если сворачиваем поле, правая граница сводится к левой\r\n if (newValue) {\r\n self.MaxValue(self.MinValue());\r\n }\r\n // А если разворачиваем, то обнуляем правую границу\r\n else {\r\n self.MaxValue(null);\r\n }\r\n });\r\n }\r\n RangeField.prototype.showRange = function () {\r\n var self = this;\r\n self.IsCompacted(false);\r\n }\r\n RangeField.prototype.getDescription = function (formattingFunction) {\r\n var self = this;\r\n var minValue = ko.unwrap(self.MinValue), maxValue = ko.unwrap(self.MaxValue);\r\n if (!minValue && !maxValue) {\r\n return \"\";\r\n }\r\n if (typeof formattingFunction === \"function\") {\r\n minValue = formattingFunction(minValue);\r\n maxValue = formattingFunction(maxValue);\r\n }\r\n return self.DisplayName + \": \" + minValue + \" \\u2013 \" + maxValue;\r\n }\r\n RangeField.prototype.clear = function() {\r\n var self = this;\r\n self.MinValue(null);\r\n self.MaxValue(null);\r\n }\r\n RangeField.prototype.toJSON = function() {\r\n var copy = ko.toJS(this);\r\n if (copy.IsEnabled) {\r\n delete copy.Hint;\r\n delete copy.DisplayName;\r\n delete copy.IsEnabled;\r\n return copy;\r\n } else {\r\n return null;\r\n }\r\n };\r\n return RangeField;\r\n });","define([\"knockout\"],\r\n function(ko) {\r\n var CheckboxField = function (field, disabled) {\r\n var self = this;\r\n\r\n field = field || {};\r\n disabled = disabled || false;\r\n\r\n self.Name = field.Name;\r\n self.DisplayName = field.DisplayName ? field.DisplayName : field.Name;\r\n self.HiddenInputName = field.HiddenInputName;\r\n self.Value = ko.observable(field.Value);\r\n self.Hint = field.Hint;\r\n\r\n self.IsChecked = ko.observable(field.Value);\r\n self.IsEnabled = ko.observable(!disabled);\r\n }\r\n CheckboxField.prototype.getDescription = function () {\r\n var self = this;\r\n var value = ko.unwrap(self.IsChecked);\r\n if (!value) {\r\n return \"\";\r\n }\r\n return self.DisplayName + \": \" + value;\r\n }\r\n CheckboxField.prototype.clear = function() {\r\n var self = this;\r\n self.IsChecked(false);\r\n self.Value = self.IsChecked;\r\n }\r\n CheckboxField.prototype.toJSON = function() {\r\n var self = this;\r\n self.Value = self.IsChecked;\r\n var copy = ko.toJS(this);\r\n if (copy.IsEnabled) {\r\n delete copy.Hint;\r\n delete copy.DisplayName;\r\n delete copy.IsEnabled;\r\n return copy;\r\n } else {\r\n return null;\r\n }\r\n }\r\n \r\n return CheckboxField;\r\n });","define([\"knockout\", \"sa-ko-validation\"],\r\n function(ko) {\r\n var DirectionStorage = function (storage, code, isRequired) {\r\n var self = this;\r\n code = code || {};\r\n\r\n self.Storage = storage;\r\n self.IsRequired = !!isRequired;\r\n \r\n self.Priority = ko.observable(code.Priority);\r\n self.Major = ko.observable(code.Major);\r\n self.Special = ko.observable(code.Special)\r\n .extend({\r\n required: {\r\n onlyIf: function () {\r\n return self.IsRequired;\r\n }\r\n }\r\n });\r\n self.IsFilled = ko.pureComputed(function () {\r\n var priority = self.Priority();\r\n var major = self.Major();\r\n var spec = self.Special();\r\n\r\n return (priority || priority == 0) && (major || major == 0) && (spec || spec == 0);\r\n });\r\n self.DisplayString = ko.pureComputed(function () {\r\n var displayName = \"\";\r\n if (!self.IsFilled())\r\n return displayName;\r\n\r\n var priority = self.Storage.Priorities[self.Priority()];\r\n if (priority)\r\n displayName += priority.Name + \". \";\r\n\r\n var major = priority.Majors[self.Major()];\r\n if (major)\r\n displayName += major.Name + \". \";\r\n\r\n var spec = major.Specs[self.Special()];\r\n if (spec)\r\n displayName += spec.Name;\r\n\r\n return displayName;\r\n });\r\n\r\n self.OldMajor = code.Major;\r\n }\r\n DirectionStorage.prototype.toJSON = function () {\r\n var self = this;\r\n if (self.Special) {\r\n return {\r\n Priority: self.Priority,\r\n Major: self.Major,\r\n Special: self.Special\r\n };\r\n }\r\n // Важно возвращать null, чтобы корректно работала валидация модели на сервере\r\n return null;\r\n };\r\n DirectionStorage.prototype.Priorities = function () {\r\n var self = this;\r\n var result = [];\r\n ko.utils.arrayForEach(self.Storage.Priorities,\r\n function (item, index) {\r\n result.push({ Key: index, Value: item.Name });\r\n });\r\n return result;\r\n }\r\n DirectionStorage.prototype.Majors = function () {\r\n var self = this;\r\n var result = [];\r\n var priority = self.Priority();\r\n if (priority || priority == 0) {\r\n var majors = self.Storage.Priorities[priority].Majors;\r\n ko.utils.arrayForEach(majors,\r\n function (item, index) {\r\n result.push({ Key: index, Value: item.Name });\r\n });\r\n }\r\n return result;\r\n };\r\n DirectionStorage.prototype.Specs = function () {\r\n var self = this;\r\n var result = [];\r\n var priority = self.Priority();\r\n var major = self.Major();\r\n if ((priority || priority == 0) && (major || major == 0)) {\r\n var specials = self.Storage.Priorities[priority].Majors[major].Specs;\r\n ko.utils.arrayForEach(specials,\r\n function (item, index) {\r\n result.push({ Key: index, Value: item.Name });\r\n });\r\n }\r\n if (major != self.OldMajor)\r\n {\r\n self.Special(null);\r\n self.OldMajor = major;\r\n }\r\n return result;\r\n };\r\n DirectionStorage.prototype.clone = function(isRequired) {\r\n var self = this;\r\n return new DirectionStorage({\r\n Priority: self.Priority(),\r\n Major: self.Major(),\r\n Special: self.Special()\r\n },\r\n isRequired);\r\n }\r\n DirectionStorage.prototype.getCanonicalString = function() {\r\n var self = this;\r\n return self.Priority() + \",\" + self.Major() + \",\" + self.Special();\r\n }\r\n DirectionStorage.prototype.equals = function(code) {\r\n var self = this;\r\n if (!code) {\r\n return false;\r\n }\r\n return self.getCanonicalString() === code.getCanonicalString();\r\n }\r\n DirectionStorage.prototype.clear = function () {\r\n var self = this;\r\n self.Priority(null);\r\n }\r\n return DirectionStorage;\r\n });","define([\"knockout\", \"scripts/shared/direction-storage\"],\r\n function (ko, DirectionStorage) {\r\n var SingleValueWithStorageField = function(storage, field, disabled) {\r\n var self = this;\r\n\r\n field = field || {};\r\n storage = storage || {};\r\n disabled = disabled || false;\r\n\r\n self.Name = field.Name;\r\n self.DisplayName = field.DisplayName ? field.DisplayName : field.Name;\r\n self.HiddenInputName = field.HiddenInputName;\r\n self.Hint = field.Hint;\r\n\r\n self.IsEnabled = ko.observable(!disabled);\r\n self.Value = ko.observable(field.Value);\r\n\r\n self.Storage = new DirectionStorage(storage, field.Value, false);\r\n\r\n self.getValue = function () {\r\n return (self.Storage.Priority || self.Storage.Priority == 0)\r\n ? {\r\n Priority: self.Storage.Priority,\r\n Major: self.Storage.Major,\r\n Special: self.Storage.Special\r\n }\r\n : null;\r\n };\r\n }\r\n SingleValueWithStorageField.prototype.getDescription = function () {\r\n var self = this;\r\n var value = ko.unwrap(self.getValue());\r\n if (value.Priority() == null) {\r\n return \"\";\r\n }\r\n return self.DisplayName + \":{\" + value.Priority() + \", \" + value.Major() + \", \" + value.Special() + \"}\"\r\n }\r\n SingleValueWithStorageField.prototype.clear = function() {\r\n var self = this;\r\n self.Storage.clear();\r\n self.Value(null);\r\n }\r\n SingleValueWithStorageField.prototype.toJSON = function () {\r\n var self = this;\r\n self.Value = this.getValue();\r\n var copy = ko.toJS(this);\r\n if (copy.IsEnabled) {\r\n delete copy.Hint;\r\n delete copy.DisplayName;\r\n delete copy.IsEnabled;\r\n delete copy.Storage;\r\n return copy;\r\n } else {\r\n return null;\r\n }\r\n }\r\n return SingleValueWithStorageField;\r\n });","/* */ \n\"format cjs\";\n/*! jQuery UI - v1.11.4+CommonJS - 2015-08-28\n* http://jqueryui.com\n* Includes: widget.js\n* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */\n\n(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([ \"jquery\" ], factory );\n\n\t} else if ( typeof exports === \"object\" ) {\n\n\t\t// Node/CommonJS\n\t\tfactory( require( \"jquery\" ) );\n\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n/*!\n * jQuery UI Widget 1.11.4\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/jQuery.widget/\n */\n\n\nvar widget_uuid = 0,\n\twidget_slice = Array.prototype.slice;\n\n$.cleanData = (function( orig ) {\n\treturn function( elems ) {\n\t\tvar events, elem, i;\n\t\tfor ( i = 0; (elem = elems[i]) != null; i++ ) {\n\t\t\ttry {\n\n\t\t\t\t// Only trigger remove when necessary to save time\n\t\t\t\tevents = $._data( elem, \"events\" );\n\t\t\t\tif ( events && events.remove ) {\n\t\t\t\t\t$( elem ).triggerHandler( \"remove\" );\n\t\t\t\t}\n\n\t\t\t// http://bugs.jquery.com/ticket/8235\n\t\t\t} catch ( e ) {}\n\t\t}\n\t\torig( elems );\n\t};\n})( $.cleanData );\n\n$.widget = function( name, base, prototype ) {\n\tvar fullName, existingConstructor, constructor, basePrototype,\n\t\t// proxiedPrototype allows the provided prototype to remain unmodified\n\t\t// so that it can be used as a mixin for multiple widgets (#8876)\n\t\tproxiedPrototype = {},\n\t\tnamespace = name.split( \".\" )[ 0 ];\n\n\tname = name.split( \".\" )[ 1 ];\n\tfullName = namespace + \"-\" + name;\n\n\tif ( !prototype ) {\n\t\tprototype = base;\n\t\tbase = $.Widget;\n\t}\n\n\t// create selector for plugin\n\t$.expr[ \":\" ][ fullName.toLowerCase() ] = function( elem ) {\n\t\treturn !!$.data( elem, fullName );\n\t};\n\n\t$[ namespace ] = $[ namespace ] || {};\n\texistingConstructor = $[ namespace ][ name ];\n\tconstructor = $[ namespace ][ name ] = function( options, element ) {\n\t\t// allow instantiation without \"new\" keyword\n\t\tif ( !this._createWidget ) {\n\t\t\treturn new constructor( options, element );\n\t\t}\n\n\t\t// allow instantiation without initializing for simple inheritance\n\t\t// must use \"new\" keyword (the code above always passes args)\n\t\tif ( arguments.length ) {\n\t\t\tthis._createWidget( options, element );\n\t\t}\n\t};\n\t// extend with the existing constructor to carry over any static properties\n\t$.extend( constructor, existingConstructor, {\n\t\tversion: prototype.version,\n\t\t// copy the object used to create the prototype in case we need to\n\t\t// redefine the widget later\n\t\t_proto: $.extend( {}, prototype ),\n\t\t// track widgets that inherit from this widget in case this widget is\n\t\t// redefined after a widget inherits from it\n\t\t_childConstructors: []\n\t});\n\n\tbasePrototype = new base();\n\t// we need to make the options hash a property directly on the new instance\n\t// otherwise we'll modify the options hash on the prototype that we're\n\t// inheriting from\n\tbasePrototype.options = $.widget.extend( {}, basePrototype.options );\n\t$.each( prototype, function( prop, value ) {\n\t\tif ( !$.isFunction( value ) ) {\n\t\t\tproxiedPrototype[ prop ] = value;\n\t\t\treturn;\n\t\t}\n\t\tproxiedPrototype[ prop ] = (function() {\n\t\t\tvar _super = function() {\n\t\t\t\t\treturn base.prototype[ prop ].apply( this, arguments );\n\t\t\t\t},\n\t\t\t\t_superApply = function( args ) {\n\t\t\t\t\treturn base.prototype[ prop ].apply( this, args );\n\t\t\t\t};\n\t\t\treturn function() {\n\t\t\t\tvar __super = this._super,\n\t\t\t\t\t__superApply = this._superApply,\n\t\t\t\t\treturnValue;\n\n\t\t\t\tthis._super = _super;\n\t\t\t\tthis._superApply = _superApply;\n\n\t\t\t\treturnValue = value.apply( this, arguments );\n\n\t\t\t\tthis._super = __super;\n\t\t\t\tthis._superApply = __superApply;\n\n\t\t\t\treturn returnValue;\n\t\t\t};\n\t\t})();\n\t});\n\tconstructor.prototype = $.widget.extend( basePrototype, {\n\t\t// TODO: remove support for widgetEventPrefix\n\t\t// always use the name + a colon as the prefix, e.g., draggable:start\n\t\t// don't prefix for widgets that aren't DOM-based\n\t\twidgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name\n\t}, proxiedPrototype, {\n\t\tconstructor: constructor,\n\t\tnamespace: namespace,\n\t\twidgetName: name,\n\t\twidgetFullName: fullName\n\t});\n\n\t// If this widget is being redefined then we need to find all widgets that\n\t// are inheriting from it and redefine all of them so that they inherit from\n\t// the new version of this widget. We're essentially trying to replace one\n\t// level in the prototype chain.\n\tif ( existingConstructor ) {\n\t\t$.each( existingConstructor._childConstructors, function( i, child ) {\n\t\t\tvar childPrototype = child.prototype;\n\n\t\t\t// redefine the child widget using the same prototype that was\n\t\t\t// originally used, but inherit from the new version of the base\n\t\t\t$.widget( childPrototype.namespace + \".\" + childPrototype.widgetName, constructor, child._proto );\n\t\t});\n\t\t// remove the list of existing child constructors from the old constructor\n\t\t// so the old child constructors can be garbage collected\n\t\tdelete existingConstructor._childConstructors;\n\t} else {\n\t\tbase._childConstructors.push( constructor );\n\t}\n\n\t$.widget.bridge( name, constructor );\n\n\treturn constructor;\n};\n\n$.widget.extend = function( target ) {\n\tvar input = widget_slice.call( arguments, 1 ),\n\t\tinputIndex = 0,\n\t\tinputLength = input.length,\n\t\tkey,\n\t\tvalue;\n\tfor ( ; inputIndex < inputLength; inputIndex++ ) {\n\t\tfor ( key in input[ inputIndex ] ) {\n\t\t\tvalue = input[ inputIndex ][ key ];\n\t\t\tif ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {\n\t\t\t\t// Clone objects\n\t\t\t\tif ( $.isPlainObject( value ) ) {\n\t\t\t\t\ttarget[ key ] = $.isPlainObject( target[ key ] ) ?\n\t\t\t\t\t\t$.widget.extend( {}, target[ key ], value ) :\n\t\t\t\t\t\t// Don't extend strings, arrays, etc. with objects\n\t\t\t\t\t\t$.widget.extend( {}, value );\n\t\t\t\t// Copy everything else by reference\n\t\t\t\t} else {\n\t\t\t\t\ttarget[ key ] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn target;\n};\n\n$.widget.bridge = function( name, object ) {\n\tvar fullName = object.prototype.widgetFullName || name;\n\t$.fn[ name ] = function( options ) {\n\t\tvar isMethodCall = typeof options === \"string\",\n\t\t\targs = widget_slice.call( arguments, 1 ),\n\t\t\treturnValue = this;\n\n\t\tif ( isMethodCall ) {\n\t\t\tthis.each(function() {\n\t\t\t\tvar methodValue,\n\t\t\t\t\tinstance = $.data( this, fullName );\n\t\t\t\tif ( options === \"instance\" ) {\n\t\t\t\t\treturnValue = instance;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif ( !instance ) {\n\t\t\t\t\treturn $.error( \"cannot call methods on \" + name + \" prior to initialization; \" +\n\t\t\t\t\t\t\"attempted to call method '\" + options + \"'\" );\n\t\t\t\t}\n\t\t\t\tif ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === \"_\" ) {\n\t\t\t\t\treturn $.error( \"no such method '\" + options + \"' for \" + name + \" widget instance\" );\n\t\t\t\t}\n\t\t\t\tmethodValue = instance[ options ].apply( instance, args );\n\t\t\t\tif ( methodValue !== instance && methodValue !== undefined ) {\n\t\t\t\t\treturnValue = methodValue && methodValue.jquery ?\n\t\t\t\t\t\treturnValue.pushStack( methodValue.get() ) :\n\t\t\t\t\t\tmethodValue;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\n\t\t\t// Allow multiple hashes to be passed on init\n\t\t\tif ( args.length ) {\n\t\t\t\toptions = $.widget.extend.apply( null, [ options ].concat(args) );\n\t\t\t}\n\n\t\t\tthis.each(function() {\n\t\t\t\tvar instance = $.data( this, fullName );\n\t\t\t\tif ( instance ) {\n\t\t\t\t\tinstance.option( options || {} );\n\t\t\t\t\tif ( instance._init ) {\n\t\t\t\t\t\tinstance._init();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$.data( this, fullName, new object( options, this ) );\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn returnValue;\n\t};\n};\n\n$.Widget = function( /* options, element */ ) {};\n$.Widget._childConstructors = [];\n\n$.Widget.prototype = {\n\twidgetName: \"widget\",\n\twidgetEventPrefix: \"\",\n\tdefaultElement: \"
\",\n\toptions: {\n\t\tdisabled: false,\n\n\t\t// callbacks\n\t\tcreate: null\n\t},\n\t_createWidget: function( options, element ) {\n\t\telement = $( element || this.defaultElement || this )[ 0 ];\n\t\tthis.element = $( element );\n\t\tthis.uuid = widget_uuid++;\n\t\tthis.eventNamespace = \".\" + this.widgetName + this.uuid;\n\n\t\tthis.bindings = $();\n\t\tthis.hoverable = $();\n\t\tthis.focusable = $();\n\n\t\tif ( element !== this ) {\n\t\t\t$.data( element, this.widgetFullName, this );\n\t\t\tthis._on( true, this.element, {\n\t\t\t\tremove: function( event ) {\n\t\t\t\t\tif ( event.target === element ) {\n\t\t\t\t\t\tthis.destroy();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.document = $( element.style ?\n\t\t\t\t// element within the document\n\t\t\t\telement.ownerDocument :\n\t\t\t\t// element is window or document\n\t\t\t\telement.document || element );\n\t\t\tthis.window = $( this.document[0].defaultView || this.document[0].parentWindow );\n\t\t}\n\n\t\tthis.options = $.widget.extend( {},\n\t\t\tthis.options,\n\t\t\tthis._getCreateOptions(),\n\t\t\toptions );\n\n\t\tthis._create();\n\t\tthis._trigger( \"create\", null, this._getCreateEventData() );\n\t\tthis._init();\n\t},\n\t_getCreateOptions: $.noop,\n\t_getCreateEventData: $.noop,\n\t_create: $.noop,\n\t_init: $.noop,\n\n\tdestroy: function() {\n\t\tthis._destroy();\n\t\t// we can probably remove the unbind calls in 2.0\n\t\t// all event bindings should go through this._on()\n\t\tthis.element\n\t\t\t.unbind( this.eventNamespace )\n\t\t\t.removeData( this.widgetFullName )\n\t\t\t// support: jquery <1.6.3\n\t\t\t// http://bugs.jquery.com/ticket/9413\n\t\t\t.removeData( $.camelCase( this.widgetFullName ) );\n\t\tthis.widget()\n\t\t\t.unbind( this.eventNamespace )\n\t\t\t.removeAttr( \"aria-disabled\" )\n\t\t\t.removeClass(\n\t\t\t\tthis.widgetFullName + \"-disabled \" +\n\t\t\t\t\"ui-state-disabled\" );\n\n\t\t// clean up events and states\n\t\tthis.bindings.unbind( this.eventNamespace );\n\t\tthis.hoverable.removeClass( \"ui-state-hover\" );\n\t\tthis.focusable.removeClass( \"ui-state-focus\" );\n\t},\n\t_destroy: $.noop,\n\n\twidget: function() {\n\t\treturn this.element;\n\t},\n\n\toption: function( key, value ) {\n\t\tvar options = key,\n\t\t\tparts,\n\t\t\tcurOption,\n\t\t\ti;\n\n\t\tif ( arguments.length === 0 ) {\n\t\t\t// don't return a reference to the internal hash\n\t\t\treturn $.widget.extend( {}, this.options );\n\t\t}\n\n\t\tif ( typeof key === \"string\" ) {\n\t\t\t// handle nested keys, e.g., \"foo.bar\" => { foo: { bar: ___ } }\n\t\t\toptions = {};\n\t\t\tparts = key.split( \".\" );\n\t\t\tkey = parts.shift();\n\t\t\tif ( parts.length ) {\n\t\t\t\tcurOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );\n\t\t\t\tfor ( i = 0; i < parts.length - 1; i++ ) {\n\t\t\t\t\tcurOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};\n\t\t\t\t\tcurOption = curOption[ parts[ i ] ];\n\t\t\t\t}\n\t\t\t\tkey = parts.pop();\n\t\t\t\tif ( arguments.length === 1 ) {\n\t\t\t\t\treturn curOption[ key ] === undefined ? null : curOption[ key ];\n\t\t\t\t}\n\t\t\t\tcurOption[ key ] = value;\n\t\t\t} else {\n\t\t\t\tif ( arguments.length === 1 ) {\n\t\t\t\t\treturn this.options[ key ] === undefined ? null : this.options[ key ];\n\t\t\t\t}\n\t\t\t\toptions[ key ] = value;\n\t\t\t}\n\t\t}\n\n\t\tthis._setOptions( options );\n\n\t\treturn this;\n\t},\n\t_setOptions: function( options ) {\n\t\tvar key;\n\n\t\tfor ( key in options ) {\n\t\t\tthis._setOption( key, options[ key ] );\n\t\t}\n\n\t\treturn this;\n\t},\n\t_setOption: function( key, value ) {\n\t\tthis.options[ key ] = value;\n\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis.widget()\n\t\t\t\t.toggleClass( this.widgetFullName + \"-disabled\", !!value );\n\n\t\t\t// If the widget is becoming disabled, then nothing is interactive\n\t\t\tif ( value ) {\n\t\t\t\tthis.hoverable.removeClass( \"ui-state-hover\" );\n\t\t\t\tthis.focusable.removeClass( \"ui-state-focus\" );\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tenable: function() {\n\t\treturn this._setOptions({ disabled: false });\n\t},\n\tdisable: function() {\n\t\treturn this._setOptions({ disabled: true });\n\t},\n\n\t_on: function( suppressDisabledCheck, element, handlers ) {\n\t\tvar delegateElement,\n\t\t\tinstance = this;\n\n\t\t// no suppressDisabledCheck flag, shuffle arguments\n\t\tif ( typeof suppressDisabledCheck !== \"boolean\" ) {\n\t\t\thandlers = element;\n\t\t\telement = suppressDisabledCheck;\n\t\t\tsuppressDisabledCheck = false;\n\t\t}\n\n\t\t// no element argument, shuffle and use this.element\n\t\tif ( !handlers ) {\n\t\t\thandlers = element;\n\t\t\telement = this.element;\n\t\t\tdelegateElement = this.widget();\n\t\t} else {\n\t\t\telement = delegateElement = $( element );\n\t\t\tthis.bindings = this.bindings.add( element );\n\t\t}\n\n\t\t$.each( handlers, function( event, handler ) {\n\t\t\tfunction handlerProxy() {\n\t\t\t\t// allow widgets to customize the disabled handling\n\t\t\t\t// - disabled as an array instead of boolean\n\t\t\t\t// - disabled class as method for disabling individual parts\n\t\t\t\tif ( !suppressDisabledCheck &&\n\t\t\t\t\t\t( instance.options.disabled === true ||\n\t\t\t\t\t\t\t$( this ).hasClass( \"ui-state-disabled\" ) ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\n\t\t\t\t\t.apply( instance, arguments );\n\t\t\t}\n\n\t\t\t// copy the guid so direct unbinding works\n\t\t\tif ( typeof handler !== \"string\" ) {\n\t\t\t\thandlerProxy.guid = handler.guid =\n\t\t\t\t\thandler.guid || handlerProxy.guid || $.guid++;\n\t\t\t}\n\n\t\t\tvar match = event.match( /^([\\w:-]*)\\s*(.*)$/ ),\n\t\t\t\teventName = match[1] + instance.eventNamespace,\n\t\t\t\tselector = match[2];\n\t\t\tif ( selector ) {\n\t\t\t\tdelegateElement.delegate( selector, eventName, handlerProxy );\n\t\t\t} else {\n\t\t\t\telement.bind( eventName, handlerProxy );\n\t\t\t}\n\t\t});\n\t},\n\n\t_off: function( element, eventName ) {\n\t\teventName = (eventName || \"\").split( \" \" ).join( this.eventNamespace + \" \" ) +\n\t\t\tthis.eventNamespace;\n\t\telement.unbind( eventName ).undelegate( eventName );\n\n\t\t// Clear the stack to avoid memory leaks (#10056)\n\t\tthis.bindings = $( this.bindings.not( element ).get() );\n\t\tthis.focusable = $( this.focusable.not( element ).get() );\n\t\tthis.hoverable = $( this.hoverable.not( element ).get() );\n\t},\n\n\t_delay: function( handler, delay ) {\n\t\tfunction handlerProxy() {\n\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\n\t\t\t\t.apply( instance, arguments );\n\t\t}\n\t\tvar instance = this;\n\t\treturn setTimeout( handlerProxy, delay || 0 );\n\t},\n\n\t_hoverable: function( element ) {\n\t\tthis.hoverable = this.hoverable.add( element );\n\t\tthis._on( element, {\n\t\t\tmouseenter: function( event ) {\n\t\t\t\t$( event.currentTarget ).addClass( \"ui-state-hover\" );\n\t\t\t},\n\t\t\tmouseleave: function( event ) {\n\t\t\t\t$( event.currentTarget ).removeClass( \"ui-state-hover\" );\n\t\t\t}\n\t\t});\n\t},\n\n\t_focusable: function( element ) {\n\t\tthis.focusable = this.focusable.add( element );\n\t\tthis._on( element, {\n\t\t\tfocusin: function( event ) {\n\t\t\t\t$( event.currentTarget ).addClass( \"ui-state-focus\" );\n\t\t\t},\n\t\t\tfocusout: function( event ) {\n\t\t\t\t$( event.currentTarget ).removeClass( \"ui-state-focus\" );\n\t\t\t}\n\t\t});\n\t},\n\n\t_trigger: function( type, event, data ) {\n\t\tvar prop, orig,\n\t\t\tcallback = this.options[ type ];\n\n\t\tdata = data || {};\n\t\tevent = $.Event( event );\n\t\tevent.type = ( type === this.widgetEventPrefix ?\n\t\t\ttype :\n\t\t\tthis.widgetEventPrefix + type ).toLowerCase();\n\t\t// the original event may come from any element\n\t\t// so we need to reset the target on the new event\n\t\tevent.target = this.element[ 0 ];\n\n\t\t// copy original event properties over to the new event\n\t\torig = event.originalEvent;\n\t\tif ( orig ) {\n\t\t\tfor ( prop in orig ) {\n\t\t\t\tif ( !( prop in event ) ) {\n\t\t\t\t\tevent[ prop ] = orig[ prop ];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.element.trigger( event, data );\n\t\treturn !( $.isFunction( callback ) &&\n\t\t\tcallback.apply( this.element[0], [ event ].concat( data ) ) === false ||\n\t\t\tevent.isDefaultPrevented() );\n\t}\n};\n\n$.each( { show: \"fadeIn\", hide: \"fadeOut\" }, function( method, defaultEffect ) {\n\t$.Widget.prototype[ \"_\" + method ] = function( element, options, callback ) {\n\t\tif ( typeof options === \"string\" ) {\n\t\t\toptions = { effect: options };\n\t\t}\n\t\tvar hasOptions,\n\t\t\teffectName = !options ?\n\t\t\t\tmethod :\n\t\t\t\toptions === true || typeof options === \"number\" ?\n\t\t\t\t\tdefaultEffect :\n\t\t\t\t\toptions.effect || defaultEffect;\n\t\toptions = options || {};\n\t\tif ( typeof options === \"number\" ) {\n\t\t\toptions = { duration: options };\n\t\t}\n\t\thasOptions = !$.isEmptyObject( options );\n\t\toptions.complete = callback;\n\t\tif ( options.delay ) {\n\t\t\telement.delay( options.delay );\n\t\t}\n\t\tif ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {\n\t\t\telement[ method ]( options );\n\t\t} else if ( effectName !== method && element[ effectName ] ) {\n\t\t\telement[ effectName ]( options.duration, options.easing, callback );\n\t\t} else {\n\t\t\telement.queue(function( next ) {\n\t\t\t\t$( this )[ method ]();\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback.call( element[ 0 ] );\n\t\t\t\t}\n\t\t\t\tnext();\n\t\t\t});\n\t\t}\n\t};\n});\n\nvar widget = $.widget;\n\n\n\n}));\n","/* */ \n\"format cjs\";\n(function(process) {\n (function(factory) {\n 'use strict';\n if (typeof define === 'function' && define.amd) {\n define(['jquery', 'jquery.ui.widget'], factory);\n } else if (typeof exports === 'object') {\n factory(require('jquery'), require('./vendor/jquery.ui.widget'));\n } else {\n factory(window.jQuery);\n }\n }(function($) {\n 'use strict';\n $.support.fileInput = !(new RegExp('(Android (1\\\\.[0156]|2\\\\.[01]))' + '|(Windows Phone (OS 7|8\\\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)' + '|(w(eb)?OSBrowser)|(webOS)' + '|(Kindle/(1\\\\.0|2\\\\.[05]|3\\\\.0))').test(window.navigator.userAgent) || $('').prop('disabled'));\n $.support.xhrFileUpload = !!(window.ProgressEvent && window.FileReader);\n $.support.xhrFormDataFileUpload = !!window.FormData;\n $.support.blobSlice = window.Blob && (Blob.prototype.slice || Blob.prototype.webkitSlice || Blob.prototype.mozSlice);\n function getDragHandler(type) {\n var isDragOver = type === 'dragover';\n return function(e) {\n e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;\n var dataTransfer = e.dataTransfer;\n if (dataTransfer && $.inArray('Files', dataTransfer.types) !== -1 && this._trigger(type, $.Event(type, {delegatedEvent: e})) !== false) {\n e.preventDefault();\n if (isDragOver) {\n dataTransfer.dropEffect = 'copy';\n }\n }\n };\n }\n $.widget('blueimp.fileupload', {\n options: {\n dropZone: $(document),\n pasteZone: undefined,\n fileInput: undefined,\n replaceFileInput: true,\n paramName: undefined,\n singleFileUploads: true,\n limitMultiFileUploads: undefined,\n limitMultiFileUploadSize: undefined,\n limitMultiFileUploadSizeOverhead: 512,\n sequentialUploads: false,\n limitConcurrentUploads: undefined,\n forceIframeTransport: false,\n redirect: undefined,\n redirectParamName: undefined,\n postMessage: undefined,\n multipart: true,\n maxChunkSize: undefined,\n uploadedBytes: undefined,\n recalculateProgress: true,\n progressInterval: 100,\n bitrateInterval: 500,\n autoUpload: true,\n messages: {uploadedBytes: 'Uploaded bytes exceed file size'},\n i18n: function(message, context) {\n message = this.messages[message] || message.toString();\n if (context) {\n $.each(context, function(key, value) {\n message = message.replace('{' + key + '}', value);\n });\n }\n return message;\n },\n formData: function(form) {\n return form.serializeArray();\n },\n add: function(e, data) {\n if (e.isDefaultPrevented()) {\n return false;\n }\n if (data.autoUpload || (data.autoUpload !== false && $(this).fileupload('option', 'autoUpload'))) {\n data.process().done(function() {\n data.submit();\n });\n }\n },\n processData: false,\n contentType: false,\n cache: false,\n timeout: 0\n },\n _specialOptions: ['fileInput', 'dropZone', 'pasteZone', 'multipart', 'forceIframeTransport'],\n _blobSlice: $.support.blobSlice && function() {\n var slice = this.slice || this.webkitSlice || this.mozSlice;\n return slice.apply(this, arguments);\n },\n _BitrateTimer: function() {\n this.timestamp = ((Date.now) ? Date.now() : (new Date()).getTime());\n this.loaded = 0;\n this.bitrate = 0;\n this.getBitrate = function(now, loaded, interval) {\n var timeDiff = now - this.timestamp;\n if (!this.bitrate || !interval || timeDiff > interval) {\n this.bitrate = (loaded - this.loaded) * (1000 / timeDiff) * 8;\n this.loaded = loaded;\n this.timestamp = now;\n }\n return this.bitrate;\n };\n },\n _isXHRUpload: function(options) {\n return !options.forceIframeTransport && ((!options.multipart && $.support.xhrFileUpload) || $.support.xhrFormDataFileUpload);\n },\n _getFormData: function(options) {\n var formData;\n if ($.type(options.formData) === 'function') {\n return options.formData(options.form);\n }\n if ($.isArray(options.formData)) {\n return options.formData;\n }\n if ($.type(options.formData) === 'object') {\n formData = [];\n $.each(options.formData, function(name, value) {\n formData.push({\n name: name,\n value: value\n });\n });\n return formData;\n }\n return [];\n },\n _getTotal: function(files) {\n var total = 0;\n $.each(files, function(index, file) {\n total += file.size || 1;\n });\n return total;\n },\n _initProgressObject: function(obj) {\n var progress = {\n loaded: 0,\n total: 0,\n bitrate: 0\n };\n if (obj._progress) {\n $.extend(obj._progress, progress);\n } else {\n obj._progress = progress;\n }\n },\n _initResponseObject: function(obj) {\n var prop;\n if (obj._response) {\n for (prop in obj._response) {\n if (obj._response.hasOwnProperty(prop)) {\n delete obj._response[prop];\n }\n }\n } else {\n obj._response = {};\n }\n },\n _onProgress: function(e, data) {\n if (e.lengthComputable) {\n var now = ((Date.now) ? Date.now() : (new Date()).getTime()),\n loaded;\n if (data._time && data.progressInterval && (now - data._time < data.progressInterval) && e.loaded !== e.total) {\n return;\n }\n data._time = now;\n loaded = Math.floor(e.loaded / e.total * (data.chunkSize || data._progress.total)) + (data.uploadedBytes || 0);\n this._progress.loaded += (loaded - data._progress.loaded);\n this._progress.bitrate = this._bitrateTimer.getBitrate(now, this._progress.loaded, data.bitrateInterval);\n data._progress.loaded = data.loaded = loaded;\n data._progress.bitrate = data.bitrate = data._bitrateTimer.getBitrate(now, loaded, data.bitrateInterval);\n this._trigger('progress', $.Event('progress', {delegatedEvent: e}), data);\n this._trigger('progressall', $.Event('progressall', {delegatedEvent: e}), this._progress);\n }\n },\n _initProgressListener: function(options) {\n var that = this,\n xhr = options.xhr ? options.xhr() : $.ajaxSettings.xhr();\n if (xhr.upload) {\n $(xhr.upload).bind('progress', function(e) {\n var oe = e.originalEvent;\n e.lengthComputable = oe.lengthComputable;\n e.loaded = oe.loaded;\n e.total = oe.total;\n that._onProgress(e, options);\n });\n options.xhr = function() {\n return xhr;\n };\n }\n },\n _isInstanceOf: function(type, obj) {\n return Object.prototype.toString.call(obj) === '[object ' + type + ']';\n },\n _initXHRData: function(options) {\n var that = this,\n formData,\n file = options.files[0],\n multipart = options.multipart || !$.support.xhrFileUpload,\n paramName = $.type(options.paramName) === 'array' ? options.paramName[0] : options.paramName;\n options.headers = $.extend({}, options.headers);\n if (options.contentRange) {\n options.headers['Content-Range'] = options.contentRange;\n }\n if (!multipart || options.blob || !this._isInstanceOf('File', file)) {\n options.headers['Content-Disposition'] = 'attachment; filename=\"' + encodeURI(file.name) + '\"';\n }\n if (!multipart) {\n options.contentType = file.type || 'application/octet-stream';\n options.data = options.blob || file;\n } else if ($.support.xhrFormDataFileUpload) {\n if (options.postMessage) {\n formData = this._getFormData(options);\n if (options.blob) {\n formData.push({\n name: paramName,\n value: options.blob\n });\n } else {\n $.each(options.files, function(index, file) {\n formData.push({\n name: ($.type(options.paramName) === 'array' && options.paramName[index]) || paramName,\n value: file\n });\n });\n }\n } else {\n if (that._isInstanceOf('FormData', options.formData)) {\n formData = options.formData;\n } else {\n formData = new FormData();\n $.each(this._getFormData(options), function(index, field) {\n formData.append(field.name, field.value);\n });\n }\n if (options.blob) {\n formData.append(paramName, options.blob, file.name);\n } else {\n $.each(options.files, function(index, file) {\n if (that._isInstanceOf('File', file) || that._isInstanceOf('Blob', file)) {\n formData.append(($.type(options.paramName) === 'array' && options.paramName[index]) || paramName, file, file.uploadName || file.name);\n }\n });\n }\n }\n options.data = formData;\n }\n options.blob = null;\n },\n _initIframeSettings: function(options) {\n var targetHost = $('').prop('href', options.url).prop('host');\n options.dataType = 'iframe ' + (options.dataType || '');\n options.formData = this._getFormData(options);\n if (options.redirect && targetHost && targetHost !== location.host) {\n options.formData.push({\n name: options.redirectParamName || 'redirect',\n value: options.redirect\n });\n }\n },\n _initDataSettings: function(options) {\n if (this._isXHRUpload(options)) {\n if (!this._chunkedUpload(options, true)) {\n if (!options.data) {\n this._initXHRData(options);\n }\n this._initProgressListener(options);\n }\n if (options.postMessage) {\n options.dataType = 'postmessage ' + (options.dataType || '');\n }\n } else {\n this._initIframeSettings(options);\n }\n },\n _getParamName: function(options) {\n var fileInput = $(options.fileInput),\n paramName = options.paramName;\n if (!paramName) {\n paramName = [];\n fileInput.each(function() {\n var input = $(this),\n name = input.prop('name') || 'files[]',\n i = (input.prop('files') || [1]).length;\n while (i) {\n paramName.push(name);\n i -= 1;\n }\n });\n if (!paramName.length) {\n paramName = [fileInput.prop('name') || 'files[]'];\n }\n } else if (!$.isArray(paramName)) {\n paramName = [paramName];\n }\n return paramName;\n },\n _initFormSettings: function(options) {\n if (!options.form || !options.form.length) {\n options.form = $(options.fileInput.prop('form'));\n if (!options.form.length) {\n options.form = $(this.options.fileInput.prop('form'));\n }\n }\n options.paramName = this._getParamName(options);\n if (!options.url) {\n options.url = options.form.prop('action') || location.href;\n }\n options.type = (options.type || ($.type(options.form.prop('method')) === 'string' && options.form.prop('method')) || '').toUpperCase();\n if (options.type !== 'POST' && options.type !== 'PUT' && options.type !== 'PATCH') {\n options.type = 'POST';\n }\n if (!options.formAcceptCharset) {\n options.formAcceptCharset = options.form.attr('accept-charset');\n }\n },\n _getAJAXSettings: function(data) {\n var options = $.extend({}, this.options, data);\n this._initFormSettings(options);\n this._initDataSettings(options);\n return options;\n },\n _getDeferredState: function(deferred) {\n if (deferred.state) {\n return deferred.state();\n }\n if (deferred.isResolved()) {\n return 'resolved';\n }\n if (deferred.isRejected()) {\n return 'rejected';\n }\n return 'pending';\n },\n _enhancePromise: function(promise) {\n promise.success = promise.done;\n promise.error = promise.fail;\n promise.complete = promise.always;\n return promise;\n },\n _getXHRPromise: function(resolveOrReject, context, args) {\n var dfd = $.Deferred(),\n promise = dfd.promise();\n context = context || this.options.context || promise;\n if (resolveOrReject === true) {\n dfd.resolveWith(context, args);\n } else if (resolveOrReject === false) {\n dfd.rejectWith(context, args);\n }\n promise.abort = dfd.promise;\n return this._enhancePromise(promise);\n },\n _addConvenienceMethods: function(e, data) {\n var that = this,\n getPromise = function(args) {\n return $.Deferred().resolveWith(that, args).promise();\n };\n data.process = function(resolveFunc, rejectFunc) {\n if (resolveFunc || rejectFunc) {\n data._processQueue = this._processQueue = (this._processQueue || getPromise([this])).pipe(function() {\n if (data.errorThrown) {\n return $.Deferred().rejectWith(that, [data]).promise();\n }\n return getPromise(arguments);\n }).pipe(resolveFunc, rejectFunc);\n }\n return this._processQueue || getPromise([this]);\n };\n data.submit = function() {\n if (this.state() !== 'pending') {\n data.jqXHR = this.jqXHR = (that._trigger('submit', $.Event('submit', {delegatedEvent: e}), this) !== false) && that._onSend(e, this);\n }\n return this.jqXHR || that._getXHRPromise();\n };\n data.abort = function() {\n if (this.jqXHR) {\n return this.jqXHR.abort();\n }\n this.errorThrown = 'abort';\n that._trigger('fail', null, this);\n return that._getXHRPromise(false);\n };\n data.state = function() {\n if (this.jqXHR) {\n return that._getDeferredState(this.jqXHR);\n }\n if (this._processQueue) {\n return that._getDeferredState(this._processQueue);\n }\n };\n data.processing = function() {\n return !this.jqXHR && this._processQueue && that._getDeferredState(this._processQueue) === 'pending';\n };\n data.progress = function() {\n return this._progress;\n };\n data.response = function() {\n return this._response;\n };\n },\n _getUploadedBytes: function(jqXHR) {\n var range = jqXHR.getResponseHeader('Range'),\n parts = range && range.split('-'),\n upperBytesPos = parts && parts.length > 1 && parseInt(parts[1], 10);\n return upperBytesPos && upperBytesPos + 1;\n },\n _chunkedUpload: function(options, testOnly) {\n options.uploadedBytes = options.uploadedBytes || 0;\n var that = this,\n file = options.files[0],\n fs = file.size,\n ub = options.uploadedBytes,\n mcs = options.maxChunkSize || fs,\n slice = this._blobSlice,\n dfd = $.Deferred(),\n promise = dfd.promise(),\n jqXHR,\n upload;\n if (!(this._isXHRUpload(options) && slice && (ub || mcs < fs)) || options.data) {\n return false;\n }\n if (testOnly) {\n return true;\n }\n if (ub >= fs) {\n file.error = options.i18n('uploadedBytes');\n return this._getXHRPromise(false, options.context, [null, 'error', file.error]);\n }\n upload = function() {\n var o = $.extend({}, options),\n currentLoaded = o._progress.loaded;\n o.blob = slice.call(file, ub, ub + mcs, file.type);\n o.chunkSize = o.blob.size;\n o.contentRange = 'bytes ' + ub + '-' + (ub + o.chunkSize - 1) + '/' + fs;\n that._initXHRData(o);\n that._initProgressListener(o);\n jqXHR = ((that._trigger('chunksend', null, o) !== false && $.ajax(o)) || that._getXHRPromise(false, o.context)).done(function(result, textStatus, jqXHR) {\n ub = that._getUploadedBytes(jqXHR) || (ub + o.chunkSize);\n if (currentLoaded + o.chunkSize - o._progress.loaded) {\n that._onProgress($.Event('progress', {\n lengthComputable: true,\n loaded: ub - o.uploadedBytes,\n total: ub - o.uploadedBytes\n }), o);\n }\n options.uploadedBytes = o.uploadedBytes = ub;\n o.result = result;\n o.textStatus = textStatus;\n o.jqXHR = jqXHR;\n that._trigger('chunkdone', null, o);\n that._trigger('chunkalways', null, o);\n if (ub < fs) {\n upload();\n } else {\n dfd.resolveWith(o.context, [result, textStatus, jqXHR]);\n }\n }).fail(function(jqXHR, textStatus, errorThrown) {\n o.jqXHR = jqXHR;\n o.textStatus = textStatus;\n o.errorThrown = errorThrown;\n that._trigger('chunkfail', null, o);\n that._trigger('chunkalways', null, o);\n dfd.rejectWith(o.context, [jqXHR, textStatus, errorThrown]);\n });\n };\n this._enhancePromise(promise);\n promise.abort = function() {\n return jqXHR.abort();\n };\n upload();\n return promise;\n },\n _beforeSend: function(e, data) {\n if (this._active === 0) {\n this._trigger('start');\n this._bitrateTimer = new this._BitrateTimer();\n this._progress.loaded = this._progress.total = 0;\n this._progress.bitrate = 0;\n }\n this._initResponseObject(data);\n this._initProgressObject(data);\n data._progress.loaded = data.loaded = data.uploadedBytes || 0;\n data._progress.total = data.total = this._getTotal(data.files) || 1;\n data._progress.bitrate = data.bitrate = 0;\n this._active += 1;\n this._progress.loaded += data.loaded;\n this._progress.total += data.total;\n },\n _onDone: function(result, textStatus, jqXHR, options) {\n var total = options._progress.total,\n response = options._response;\n if (options._progress.loaded < total) {\n this._onProgress($.Event('progress', {\n lengthComputable: true,\n loaded: total,\n total: total\n }), options);\n }\n response.result = options.result = result;\n response.textStatus = options.textStatus = textStatus;\n response.jqXHR = options.jqXHR = jqXHR;\n this._trigger('done', null, options);\n },\n _onFail: function(jqXHR, textStatus, errorThrown, options) {\n var response = options._response;\n if (options.recalculateProgress) {\n this._progress.loaded -= options._progress.loaded;\n this._progress.total -= options._progress.total;\n }\n response.jqXHR = options.jqXHR = jqXHR;\n response.textStatus = options.textStatus = textStatus;\n response.errorThrown = options.errorThrown = errorThrown;\n this._trigger('fail', null, options);\n },\n _onAlways: function(jqXHRorResult, textStatus, jqXHRorError, options) {\n this._trigger('always', null, options);\n },\n _onSend: function(e, data) {\n if (!data.submit) {\n this._addConvenienceMethods(e, data);\n }\n var that = this,\n jqXHR,\n aborted,\n slot,\n pipe,\n options = that._getAJAXSettings(data),\n send = function() {\n that._sending += 1;\n options._bitrateTimer = new that._BitrateTimer();\n jqXHR = jqXHR || (((aborted || that._trigger('send', $.Event('send', {delegatedEvent: e}), options) === false) && that._getXHRPromise(false, options.context, aborted)) || that._chunkedUpload(options) || $.ajax(options)).done(function(result, textStatus, jqXHR) {\n that._onDone(result, textStatus, jqXHR, options);\n }).fail(function(jqXHR, textStatus, errorThrown) {\n that._onFail(jqXHR, textStatus, errorThrown, options);\n }).always(function(jqXHRorResult, textStatus, jqXHRorError) {\n that._onAlways(jqXHRorResult, textStatus, jqXHRorError, options);\n that._sending -= 1;\n that._active -= 1;\n if (options.limitConcurrentUploads && options.limitConcurrentUploads > that._sending) {\n var nextSlot = that._slots.shift();\n while (nextSlot) {\n if (that._getDeferredState(nextSlot) === 'pending') {\n nextSlot.resolve();\n break;\n }\n nextSlot = that._slots.shift();\n }\n }\n if (that._active === 0) {\n that._trigger('stop');\n }\n });\n return jqXHR;\n };\n this._beforeSend(e, options);\n if (this.options.sequentialUploads || (this.options.limitConcurrentUploads && this.options.limitConcurrentUploads <= this._sending)) {\n if (this.options.limitConcurrentUploads > 1) {\n slot = $.Deferred();\n this._slots.push(slot);\n pipe = slot.pipe(send);\n } else {\n this._sequence = this._sequence.pipe(send, send);\n pipe = this._sequence;\n }\n pipe.abort = function() {\n aborted = [undefined, 'abort', 'abort'];\n if (!jqXHR) {\n if (slot) {\n slot.rejectWith(options.context, aborted);\n }\n return send();\n }\n return jqXHR.abort();\n };\n return this._enhancePromise(pipe);\n }\n return send();\n },\n _onAdd: function(e, data) {\n var that = this,\n result = true,\n options = $.extend({}, this.options, data),\n files = data.files,\n filesLength = files.length,\n limit = options.limitMultiFileUploads,\n limitSize = options.limitMultiFileUploadSize,\n overhead = options.limitMultiFileUploadSizeOverhead,\n batchSize = 0,\n paramName = this._getParamName(options),\n paramNameSet,\n paramNameSlice,\n fileSet,\n i,\n j = 0;\n if (!filesLength) {\n return false;\n }\n if (limitSize && files[0].size === undefined) {\n limitSize = undefined;\n }\n if (!(options.singleFileUploads || limit || limitSize) || !this._isXHRUpload(options)) {\n fileSet = [files];\n paramNameSet = [paramName];\n } else if (!(options.singleFileUploads || limitSize) && limit) {\n fileSet = [];\n paramNameSet = [];\n for (i = 0; i < filesLength; i += limit) {\n fileSet.push(files.slice(i, i + limit));\n paramNameSlice = paramName.slice(i, i + limit);\n if (!paramNameSlice.length) {\n paramNameSlice = paramName;\n }\n paramNameSet.push(paramNameSlice);\n }\n } else if (!options.singleFileUploads && limitSize) {\n fileSet = [];\n paramNameSet = [];\n for (i = 0; i < filesLength; i = i + 1) {\n batchSize += files[i].size + overhead;\n if (i + 1 === filesLength || ((batchSize + files[i + 1].size + overhead) > limitSize) || (limit && i + 1 - j >= limit)) {\n fileSet.push(files.slice(j, i + 1));\n paramNameSlice = paramName.slice(j, i + 1);\n if (!paramNameSlice.length) {\n paramNameSlice = paramName;\n }\n paramNameSet.push(paramNameSlice);\n j = i + 1;\n batchSize = 0;\n }\n }\n } else {\n paramNameSet = paramName;\n }\n data.originalFiles = files;\n $.each(fileSet || files, function(index, element) {\n var newData = $.extend({}, data);\n newData.files = fileSet ? element : [element];\n newData.paramName = paramNameSet[index];\n that._initResponseObject(newData);\n that._initProgressObject(newData);\n that._addConvenienceMethods(e, newData);\n result = that._trigger('add', $.Event('add', {delegatedEvent: e}), newData);\n return result;\n });\n return result;\n },\n _replaceFileInput: function(data) {\n var input = data.fileInput,\n inputClone = input.clone(true),\n restoreFocus = input.is(document.activeElement);\n data.fileInputClone = inputClone;\n $('
').append(inputClone)[0].reset();\n input.after(inputClone).detach();\n if (restoreFocus) {\n inputClone.focus();\n }\n $.cleanData(input.unbind('remove'));\n this.options.fileInput = this.options.fileInput.map(function(i, el) {\n if (el === input[0]) {\n return inputClone[0];\n }\n return el;\n });\n if (input[0] === this.element[0]) {\n this.element = inputClone;\n }\n },\n _handleFileTreeEntry: function(entry, path) {\n var that = this,\n dfd = $.Deferred(),\n errorHandler = function(e) {\n if (e && !e.entry) {\n e.entry = entry;\n }\n dfd.resolve([e]);\n },\n successHandler = function(entries) {\n that._handleFileTreeEntries(entries, path + entry.name + '/').done(function(files) {\n dfd.resolve(files);\n }).fail(errorHandler);\n },\n readEntries = function() {\n dirReader.readEntries(function(results) {\n if (!results.length) {\n successHandler(entries);\n } else {\n entries = entries.concat(results);\n readEntries();\n }\n }, errorHandler);\n },\n dirReader,\n entries = [];\n path = path || '';\n if (entry.isFile) {\n if (entry._file) {\n entry._file.relativePath = path;\n dfd.resolve(entry._file);\n } else {\n entry.file(function(file) {\n file.relativePath = path;\n dfd.resolve(file);\n }, errorHandler);\n }\n } else if (entry.isDirectory) {\n dirReader = entry.createReader();\n readEntries();\n } else {\n dfd.resolve([]);\n }\n return dfd.promise();\n },\n _handleFileTreeEntries: function(entries, path) {\n var that = this;\n return $.when.apply($, $.map(entries, function(entry) {\n return that._handleFileTreeEntry(entry, path);\n })).pipe(function() {\n return Array.prototype.concat.apply([], arguments);\n });\n },\n _getDroppedFiles: function(dataTransfer) {\n dataTransfer = dataTransfer || {};\n var items = dataTransfer.items;\n if (items && items.length && (items[0].webkitGetAsEntry || items[0].getAsEntry)) {\n return this._handleFileTreeEntries($.map(items, function(item) {\n var entry;\n if (item.webkitGetAsEntry) {\n entry = item.webkitGetAsEntry();\n if (entry) {\n entry._file = item.getAsFile();\n }\n return entry;\n }\n return item.getAsEntry();\n }));\n }\n return $.Deferred().resolve($.makeArray(dataTransfer.files)).promise();\n },\n _getSingleFileInputFiles: function(fileInput) {\n fileInput = $(fileInput);\n var entries = fileInput.prop('webkitEntries') || fileInput.prop('entries'),\n files,\n value;\n if (entries && entries.length) {\n return this._handleFileTreeEntries(entries);\n }\n files = $.makeArray(fileInput.prop('files'));\n if (!files.length) {\n value = fileInput.prop('value');\n if (!value) {\n return $.Deferred().resolve([]).promise();\n }\n files = [{name: value.replace(/^.*\\\\/, '')}];\n } else if (files[0].name === undefined && files[0].fileName) {\n $.each(files, function(index, file) {\n file.name = file.fileName;\n file.size = file.fileSize;\n });\n }\n return $.Deferred().resolve(files).promise();\n },\n _getFileInputFiles: function(fileInput) {\n if (!(fileInput instanceof $) || fileInput.length === 1) {\n return this._getSingleFileInputFiles(fileInput);\n }\n return $.when.apply($, $.map(fileInput, this._getSingleFileInputFiles)).pipe(function() {\n return Array.prototype.concat.apply([], arguments);\n });\n },\n _onChange: function(e) {\n var that = this,\n data = {\n fileInput: $(e.target),\n form: $(e.target.form)\n };\n this._getFileInputFiles(data.fileInput).always(function(files) {\n data.files = files;\n if (that.options.replaceFileInput) {\n that._replaceFileInput(data);\n }\n if (that._trigger('change', $.Event('change', {delegatedEvent: e}), data) !== false) {\n that._onAdd(e, data);\n }\n });\n },\n _onPaste: function(e) {\n var items = e.originalEvent && e.originalEvent.clipboardData && e.originalEvent.clipboardData.items,\n data = {files: []};\n if (items && items.length) {\n $.each(items, function(index, item) {\n var file = item.getAsFile && item.getAsFile();\n if (file) {\n data.files.push(file);\n }\n });\n if (this._trigger('paste', $.Event('paste', {delegatedEvent: e}), data) !== false) {\n this._onAdd(e, data);\n }\n }\n },\n _onDrop: function(e) {\n e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;\n var that = this,\n dataTransfer = e.dataTransfer,\n data = {};\n if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {\n e.preventDefault();\n this._getDroppedFiles(dataTransfer).always(function(files) {\n data.files = files;\n if (that._trigger('drop', $.Event('drop', {delegatedEvent: e}), data) !== false) {\n that._onAdd(e, data);\n }\n });\n }\n },\n _onDragOver: getDragHandler('dragover'),\n _onDragEnter: getDragHandler('dragenter'),\n _onDragLeave: getDragHandler('dragleave'),\n _initEventHandlers: function() {\n if (this._isXHRUpload(this.options)) {\n this._on(this.options.dropZone, {\n dragover: this._onDragOver,\n drop: this._onDrop,\n dragenter: this._onDragEnter,\n dragleave: this._onDragLeave\n });\n this._on(this.options.pasteZone, {paste: this._onPaste});\n }\n if ($.support.fileInput) {\n this._on(this.options.fileInput, {change: this._onChange});\n }\n },\n _destroyEventHandlers: function() {\n this._off(this.options.dropZone, 'dragenter dragleave dragover drop');\n this._off(this.options.pasteZone, 'paste');\n this._off(this.options.fileInput, 'change');\n },\n _setOption: function(key, value) {\n var reinit = $.inArray(key, this._specialOptions) !== -1;\n if (reinit) {\n this._destroyEventHandlers();\n }\n this._super(key, value);\n if (reinit) {\n this._initSpecialOptions();\n this._initEventHandlers();\n }\n },\n _initSpecialOptions: function() {\n var options = this.options;\n if (options.fileInput === undefined) {\n options.fileInput = this.element.is('input[type=\"file\"]') ? this.element : this.element.find('input[type=\"file\"]');\n } else if (!(options.fileInput instanceof $)) {\n options.fileInput = $(options.fileInput);\n }\n if (!(options.dropZone instanceof $)) {\n options.dropZone = $(options.dropZone);\n }\n if (!(options.pasteZone instanceof $)) {\n options.pasteZone = $(options.pasteZone);\n }\n },\n _getRegExp: function(str) {\n var parts = str.split('/'),\n modifiers = parts.pop();\n parts.shift();\n return new RegExp(parts.join('/'), modifiers);\n },\n _isRegExpOption: function(key, value) {\n return key !== 'url' && $.type(value) === 'string' && /^\\/.*\\/[igm]{0,3}$/.test(value);\n },\n _initDataAttributes: function() {\n var that = this,\n options = this.options,\n data = this.element.data();\n $.each(this.element[0].attributes, function(index, attr) {\n var key = attr.name.toLowerCase(),\n value;\n if (/^data-/.test(key)) {\n key = key.slice(5).replace(/-[a-z]/g, function(str) {\n return str.charAt(1).toUpperCase();\n });\n value = data[key];\n if (that._isRegExpOption(key, value)) {\n value = that._getRegExp(value);\n }\n options[key] = value;\n }\n });\n },\n _create: function() {\n this._initDataAttributes();\n this._initSpecialOptions();\n this._slots = [];\n this._sequence = this._getXHRPromise(true);\n this._sending = this._active = 0;\n this._initProgressObject(this);\n this._initEventHandlers();\n },\n active: function() {\n return this._active;\n },\n progress: function() {\n return this._progress;\n },\n add: function(data) {\n var that = this;\n if (!data || this.options.disabled) {\n return;\n }\n if (data.fileInput && !data.files) {\n this._getFileInputFiles(data.fileInput).always(function(files) {\n data.files = files;\n that._onAdd(null, data);\n });\n } else {\n data.files = $.makeArray(data.files);\n this._onAdd(null, data);\n }\n },\n send: function(data) {\n if (data && !this.options.disabled) {\n if (data.fileInput && !data.files) {\n var that = this,\n dfd = $.Deferred(),\n promise = dfd.promise(),\n jqXHR,\n aborted;\n promise.abort = function() {\n aborted = true;\n if (jqXHR) {\n return jqXHR.abort();\n }\n dfd.reject(null, 'abort', 'abort');\n return promise;\n };\n this._getFileInputFiles(data.fileInput).always(function(files) {\n if (aborted) {\n return;\n }\n if (!files.length) {\n dfd.reject();\n return;\n }\n data.files = files;\n jqXHR = that._onSend(null, data);\n jqXHR.then(function(result, textStatus, jqXHR) {\n dfd.resolve(result, textStatus, jqXHR);\n }, function(jqXHR, textStatus, errorThrown) {\n dfd.reject(jqXHR, textStatus, errorThrown);\n });\n });\n return this._enhancePromise(promise);\n }\n data.files = $.makeArray(data.files);\n if (data.files.length) {\n return this._onSend(null, data);\n }\n }\n return this._getXHRPromise(false, data && data.context);\n }\n });\n }));\n})(require('process'));\n","/* */ \n\"format cjs\";\n/*\n * jQuery Iframe Transport Plugin\n * https://github.com/blueimp/jQuery-File-Upload\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/* global define, require, window, document */\n\n(function (factory) {\n 'use strict';\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define(['jquery'], factory);\n } else if (typeof exports === 'object') {\n // Node/CommonJS:\n factory(require('jquery'));\n } else {\n // Browser globals:\n factory(window.jQuery);\n }\n}(function ($) {\n 'use strict';\n\n // Helper variable to create unique names for the transport iframes:\n var counter = 0;\n\n // The iframe transport accepts four additional options:\n // options.fileInput: a jQuery collection of file input fields\n // options.paramName: the parameter name for the file form data,\n // overrides the name property of the file input field(s),\n // can be a string or an array of strings.\n // options.formData: an array of objects with name and value properties,\n // equivalent to the return data of .serializeArray(), e.g.:\n // [{name: 'a', value: 1}, {name: 'b', value: 2}]\n // options.initialIframeSrc: the URL of the initial iframe src,\n // by default set to \"javascript:false;\"\n $.ajaxTransport('iframe', function (options) {\n if (options.async) {\n // javascript:false as initial iframe src\n // prevents warning popups on HTTPS in IE6:\n /*jshint scripturl: true */\n var initialIframeSrc = options.initialIframeSrc || 'javascript:false;',\n /*jshint scripturl: false */\n form,\n iframe,\n addParamChar;\n return {\n send: function (_, completeCallback) {\n form = $('
');\n form.attr('accept-charset', options.formAcceptCharset);\n addParamChar = /\\?/.test(options.url) ? '&' : '?';\n // XDomainRequest only supports GET and POST:\n if (options.type === 'DELETE') {\n options.url = options.url + addParamChar + '_method=DELETE';\n options.type = 'POST';\n } else if (options.type === 'PUT') {\n options.url = options.url + addParamChar + '_method=PUT';\n options.type = 'POST';\n } else if (options.type === 'PATCH') {\n options.url = options.url + addParamChar + '_method=PATCH';\n options.type = 'POST';\n }\n // IE versions below IE8 cannot set the name property of\n // elements that have already been added to the DOM,\n // so we set the name along with the iframe HTML markup:\n counter += 1;\n iframe = $(\n ''\n ).bind('load', function () {\n var fileInputClones,\n paramNames = $.isArray(options.paramName) ?\n options.paramName : [options.paramName];\n iframe\n .unbind('load')\n .bind('load', function () {\n var response;\n // Wrap in a try/catch block to catch exceptions thrown\n // when trying to access cross-domain iframe contents:\n try {\n response = iframe.contents();\n // Google Chrome and Firefox do not throw an\n // exception when calling iframe.contents() on\n // cross-domain requests, so we unify the response:\n if (!response.length || !response[0].firstChild) {\n throw new Error();\n }\n } catch (e) {\n response = undefined;\n }\n // The complete callback returns the\n // iframe content document as response object:\n completeCallback(\n 200,\n 'success',\n {'iframe': response}\n );\n // Fix for IE endless progress bar activity bug\n // (happens on form submits to iframe targets):\n $('')\n .appendTo(form);\n window.setTimeout(function () {\n // Removing the form in a setTimeout call\n // allows Chrome's developer tools to display\n // the response result\n form.remove();\n }, 0);\n });\n form\n .prop('target', iframe.prop('name'))\n .prop('action', options.url)\n .prop('method', options.type);\n if (options.formData) {\n $.each(options.formData, function (index, field) {\n $('')\n .prop('name', field.name)\n .val(field.value)\n .appendTo(form);\n });\n }\n if (options.fileInput && options.fileInput.length &&\n options.type === 'POST') {\n fileInputClones = options.fileInput.clone();\n // Insert a clone for each file input field:\n options.fileInput.after(function (index) {\n return fileInputClones[index];\n });\n if (options.paramName) {\n options.fileInput.each(function (index) {\n $(this).prop(\n 'name',\n paramNames[index] || options.paramName\n );\n });\n }\n // Appending the file input fields to the hidden form\n // removes them from their original location:\n form\n .append(options.fileInput)\n .prop('enctype', 'multipart/form-data')\n // enctype must be set as encoding for IE:\n .prop('encoding', 'multipart/form-data');\n // Remove the HTML5 form attribute from the input(s):\n options.fileInput.removeAttr('form');\n }\n form.submit();\n // Insert the file input fields at their original location\n // by replacing the clones with the originals:\n if (fileInputClones && fileInputClones.length) {\n options.fileInput.each(function (index, input) {\n var clone = $(fileInputClones[index]);\n // Restore the original name and form properties:\n $(input)\n .prop('name', clone.prop('name'))\n .attr('form', clone.attr('form'));\n clone.replaceWith(input);\n });\n }\n });\n form.append(iframe).appendTo(document.body);\n },\n abort: function () {\n if (iframe) {\n // javascript:false as iframe src aborts the request\n // and prevents warning popups on HTTPS in IE6.\n // concat is used to avoid the \"Script URL\" JSLint error:\n iframe\n .unbind('load')\n .prop('src', initialIframeSrc);\n }\n if (form) {\n form.remove();\n }\n }\n };\n }\n });\n\n // The iframe transport returns the iframe content document as response.\n // The following adds converters from iframe to text, json, html, xml\n // and script.\n // Please note that the Content-Type for JSON responses has to be text/plain\n // or text/html, if the browser doesn't include application/json in the\n // Accept header, else IE will show a download dialog.\n // The Content-Type for XML responses on the other hand has to be always\n // application/xml or text/xml, so IE properly parses the XML response.\n // See also\n // https://github.com/blueimp/jQuery-File-Upload/wiki/Setup#content-type-negotiation\n $.ajaxSetup({\n converters: {\n 'iframe text': function (iframe) {\n return iframe && $(iframe[0].body).text();\n },\n 'iframe json': function (iframe) {\n return iframe && $.parseJSON($(iframe[0].body).text());\n },\n 'iframe html': function (iframe) {\n return iframe && $(iframe[0].body).html();\n },\n 'iframe xml': function (iframe) {\n var xmlDoc = iframe && iframe[0];\n return xmlDoc && $.isXMLDoc(xmlDoc) ? xmlDoc :\n $.parseXML((xmlDoc.XMLDocument && xmlDoc.XMLDocument.xml) ||\n $(xmlDoc.body).html());\n },\n 'iframe script': function (iframe) {\n return iframe && $.globalEval($(iframe[0].body).text());\n }\n }\n });\n\n}));\n","/* */ \n\"format cjs\";\n(function(process) {\n (function(factory) {\n 'use strict';\n if (typeof define === 'function' && define.amd) {\n define(['jquery', './jquery.fileupload'], factory);\n } else if (typeof exports === 'object') {\n factory(require('jquery'));\n } else {\n factory(window.jQuery);\n }\n }(function($) {\n 'use strict';\n var originalAdd = $.blueimp.fileupload.prototype.options.add;\n $.widget('blueimp.fileupload', $.blueimp.fileupload, {\n options: {\n processQueue: [],\n add: function(e, data) {\n var $this = $(this);\n data.process(function() {\n return $this.fileupload('process', data);\n });\n originalAdd.call(this, e, data);\n }\n },\n processActions: {},\n _processFile: function(data, originalData) {\n var that = this,\n dfd = $.Deferred().resolveWith(that, [data]),\n chain = dfd.promise();\n this._trigger('process', null, data);\n $.each(data.processQueue, function(i, settings) {\n var func = function(data) {\n if (originalData.errorThrown) {\n return $.Deferred().rejectWith(that, [originalData]).promise();\n }\n return that.processActions[settings.action].call(that, data, settings);\n };\n chain = chain.pipe(func, settings.always && func);\n });\n chain.done(function() {\n that._trigger('processdone', null, data);\n that._trigger('processalways', null, data);\n }).fail(function() {\n that._trigger('processfail', null, data);\n that._trigger('processalways', null, data);\n });\n return chain;\n },\n _transformProcessQueue: function(options) {\n var processQueue = [];\n $.each(options.processQueue, function() {\n var settings = {},\n action = this.action,\n prefix = this.prefix === true ? action : this.prefix;\n $.each(this, function(key, value) {\n if ($.type(value) === 'string' && value.charAt(0) === '@') {\n settings[key] = options[value.slice(1) || (prefix ? prefix + key.charAt(0).toUpperCase() + key.slice(1) : key)];\n } else {\n settings[key] = value;\n }\n });\n processQueue.push(settings);\n });\n options.processQueue = processQueue;\n },\n processing: function() {\n return this._processing;\n },\n process: function(data) {\n var that = this,\n options = $.extend({}, this.options, data);\n if (options.processQueue && options.processQueue.length) {\n this._transformProcessQueue(options);\n if (this._processing === 0) {\n this._trigger('processstart');\n }\n $.each(data.files, function(index) {\n var opts = index ? $.extend({}, options) : options,\n func = function() {\n if (data.errorThrown) {\n return $.Deferred().rejectWith(that, [data]).promise();\n }\n return that._processFile(opts, data);\n };\n opts.index = index;\n that._processing += 1;\n that._processingQueue = that._processingQueue.pipe(func, func).always(function() {\n that._processing -= 1;\n if (that._processing === 0) {\n that._trigger('processstop');\n }\n });\n });\n }\n return this._processingQueue;\n },\n _create: function() {\n this._super();\n this._processing = 0;\n this._processingQueue = $.Deferred().resolveWith(this).promise();\n }\n });\n }));\n})(require('process'));\n","/* */ \n\"format cjs\";\n(function(process) {\n (function(factory) {\n 'use strict';\n if (typeof define === 'function' && define.amd) {\n define(['jquery', './jquery.fileupload-process'], factory);\n } else if (typeof exports === 'object') {\n factory(require('jquery'));\n } else {\n factory(window.jQuery);\n }\n }(function($) {\n 'use strict';\n $.blueimp.fileupload.prototype.options.processQueue.push({\n action: 'validate',\n always: true,\n acceptFileTypes: '@',\n maxFileSize: '@',\n minFileSize: '@',\n maxNumberOfFiles: '@',\n disabled: '@disableValidation'\n });\n $.widget('blueimp.fileupload', $.blueimp.fileupload, {\n options: {\n getNumberOfFiles: $.noop,\n messages: {\n maxNumberOfFiles: 'Maximum number of files exceeded',\n acceptFileTypes: 'File type not allowed',\n maxFileSize: 'File is too large',\n minFileSize: 'File is too small'\n }\n },\n processActions: {validate: function(data, options) {\n if (options.disabled) {\n return data;\n }\n var dfd = $.Deferred(),\n settings = this.options,\n file = data.files[data.index],\n fileSize;\n if (options.minFileSize || options.maxFileSize) {\n fileSize = file.size;\n }\n if ($.type(options.maxNumberOfFiles) === 'number' && (settings.getNumberOfFiles() || 0) + data.files.length > options.maxNumberOfFiles) {\n file.error = settings.i18n('maxNumberOfFiles');\n } else if (options.acceptFileTypes && !(options.acceptFileTypes.test(file.type) || options.acceptFileTypes.test(file.name))) {\n file.error = settings.i18n('acceptFileTypes');\n } else if (fileSize > options.maxFileSize) {\n file.error = settings.i18n('maxFileSize');\n } else if ($.type(fileSize) === 'number' && fileSize < options.minFileSize) {\n file.error = settings.i18n('minFileSize');\n } else {\n delete file.error;\n }\n if (file.error || data.files.error) {\n data.files.error = true;\n dfd.rejectWith(this, [data]);\n } else {\n dfd.resolveWith(this, [data]);\n }\n return dfd.promise();\n }}\n });\n }));\n})(require('process'));\n","define(\r\n [\r\n \"knockout\",\r\n \"jquery\",\r\n \"sa-utils\",\r\n \"blueimp-file-upload/js/jquery.fileupload\",\r\n \"blueimp-file-upload/js/jquery.iframe-transport\",\r\n \"blueimp-file-upload/js/jquery.fileupload-process\",\r\n \"blueimp-file-upload/js/jquery.fileupload-validate\",\r\n \"blueimp-file-upload/css/jquery.fileupload.css!\"\r\n ],\r\n function(ko, $, utils) {\r\n var FileUpload = function(options, uploadCallback, errorCallback) {\r\n var self = this;\r\n\r\n self.AutoUpload = !!options.AutoUpload;\r\n self.ResultMessage = ko.observable();\r\n self.IsError = ko.observable(false);\r\n self.FileName = ko.observable();\r\n self.IsLoading = ko.observable(false);\r\n self.Progress = ko.observable();\r\n\r\n self.UploadCallback = uploadCallback;\r\n self.ErrorCallback = errorCallback;\r\n\r\n self.CanShowProgress = utils.featureDetection.xhr2;\r\n self.CanSubmit = options.CanSubmit\r\n ? options.CanSubmit\r\n : ko.pureComputed(function() {\r\n return self.FileName() && !self.IsError();\r\n });\r\n\r\n self.cancelUploading = function() {\r\n return;\r\n }\r\n self.submit = function() {\r\n return;\r\n };\r\n\r\n self.reset = function() {\r\n self.ResultMessage(null);\r\n self.IsError(false);\r\n self.FileName(null);\r\n self.Progress(0);\r\n };\r\n self.init = function(el) {\r\n var uploadOptions = {\r\n url: options.Url,\r\n autoUpload: false,\r\n dataType: \"text\",\r\n maxFileSize: options.MaxFileSize ? options.MaxFileSize : 20 * 1024 * 1024,\r\n acceptFileTypes: options.AcceptFileTypes ? options.AcceptFileTypes : /(\\.|\\/)(pdf|doc|docx|txt|rtf|html|odt|zip|rar|7z)$/i,\r\n messages: {\r\n acceptFileTypes: \"Файл имеет недопустимый формат\",\r\n maxFileSize: \"Файл превышает допустимый размер\"\r\n }\r\n }\r\n if (options.DropZoneSelector) {\r\n var $dropZone = $(options.DropZoneSelector);\r\n uploadOptions.dropZone = $dropZone;\r\n $dropZone.bind(\"dragover\",\r\n function(e) {\r\n $(this).addClass(\"dragging\");\r\n });\r\n $dropZone.bind(\"dragleave drop\",\r\n function(e) {\r\n $(this).removeClass(\"dragging\");\r\n });\r\n }\r\n $(el)\r\n .fileupload(uploadOptions)\r\n .on(\"fileuploadprocessalways\",\r\n function(e, data) {\r\n var currentFile = data.files[data.index];\r\n if (data.files.error && currentFile.error) {\r\n self.IsError(true);\r\n self.ResultMessage(currentFile.error);\r\n self.cancelUploading = function() {\r\n return;\r\n }\r\n self.submit = function() {\r\n return;\r\n };\r\n } else {\r\n self.IsError(false);\r\n self.ResultMessage(null);\r\n\r\n if (self.AutoUpload) {\r\n var jqXHR = data.submit();\r\n self.cancelUploading = function() {\r\n jqXHR.abort();\r\n }\r\n } else {\r\n self.submit = function() {\r\n var jqXHR = data.submit();\r\n self.cancelUploading = function() {\r\n jqXHR.abort();\r\n }\r\n }\r\n }\r\n }\r\n })\r\n .on(\"fileuploadadd\",\r\n function(e, data) {\r\n self.FileName(data.files[0].name);\r\n data.process();\r\n })\r\n .on(\"fileuploaddone\",\r\n function(e, data) {\r\n self.IsLoading(false);\r\n\r\n var result = data.result;\r\n try {\r\n result = JSON.parse(result);\r\n } catch (e) {\r\n result = false;\r\n }\r\n var error = \"Произошла ошибка при загрузке файла\";\r\n if (!result) {\r\n self.IsError(true); \r\n self.ResultMessage(error);\r\n if (typeof self.ErrorCallback === \"function\") {\r\n self.ErrorCallback({ error: error });\r\n }\r\n } else if (!result.ok) {\r\n self.IsError(true);\r\n error = result.error || error;\r\n self.ResultMessage(error);\r\n if (typeof self.ErrorCallback === \"function\") {\r\n self.ErrorCallback({ error: error });\r\n }\r\n } else if (result.ok) {\r\n self.IsError(false);\r\n self.ResultMessage(\"Файл успешно загружен\");\r\n if (typeof self.UploadCallback === \"function\") {\r\n self.UploadCallback(result);\r\n }\r\n }\r\n })\r\n .on(\"fileuploadsubmit\",\r\n function(e, data) {\r\n data.formData = ko.toJS(options.FormData);\r\n self.IsLoading(true);\r\n })\r\n .on(\"fileuploadfail\",\r\n function(e, data) {\r\n self.IsLoading(false);\r\n if (data.errorThrown !== \"abort\") {\r\n self.IsError(true);\r\n self.ResultMessage(data.errorThrown);\r\n }\r\n })\r\n .on(\"fileuploadprogressall\",\r\n function(e, data) {\r\n self.Progress(parseInt(data.loaded / data.total * 100, 10) + \"%\");\r\n });\r\n }\r\n }\r\n return FileUpload;\r\n }\r\n);","define(\r\n [\r\n \"jquery\",\r\n \"knockout\",\r\n \"scripts/shared/single-value-field\",\r\n \"scripts/shared/multi-value-field\",\r\n \"scripts/shared/range-field\",\r\n \"scripts/shared/checkbox-field\",\r\n \"scripts/shared/single-value-with-storage-field\",\r\n \"scripts/shared/fileupload\",\r\n \"sa-utils\"\r\n ],\r\n function ($, ko, SingleValueField, MultiValueField, RangeField, CheckboxField, SingleValueWithStorageField, FileUpload, utils) {\r\n var SearchForm = function(filter, document, options) {\r\n var self = this;\r\n options = options || {};\r\n\r\n self.SearchModes = {\r\n Text: 0,\r\n File: 1\r\n }\r\n\r\n self.SearchString = ko.observable(filter.SearchString);\r\n\r\n self.TopicSearchFileName = ko.observable(filter.TopicSearchFileName);\r\n self.TopicSearchDocumentId = ko.observable(filter.TopicSearchDocumentId);\r\n\r\n self.SearchMode = (filter.TopicSearchFileName || filter.TopicSearchDocumentId)\r\n ? ko.observable(self.SearchModes.File)\r\n : ko.observable(self.SearchModes.Text);\r\n\r\n var fields = filter.FormFields;\r\n self.FormFields = {\r\n Name: new SingleValueField(fields.Name),\r\n Author: new MultiValueField(fields.Author),\r\n PublicationDate: new RangeField(fields.PublicationDate, false, true),\r\n DocumentType: new MultiValueField(fields.DocumentType),\r\n Rank: new MultiValueField(fields.Rank),\r\n DissertationCouncilCode: new MultiValueField(fields.DissertationCouncilCode),\r\n VakCode: new MultiValueField(fields.VakCode),\r\n CollectionNameRudn: new CheckboxField(fields.CollectionNameRudn),\r\n DirectionCode: new SingleValueWithStorageField(filter.DirectionStorage, fields.DirectionCode)\r\n };\r\n\r\n self.IsExtendedFilterFilled = ko.pureComputed(function() {\r\n return ko.utils.unwrapObservable(self.FormFields.Name.Value) ||\r\n (ko.utils.unwrapObservable(self.FormFields.Author\r\n .Values) &&\r\n self.FormFields.Author.Values().length > 0) ||\r\n ko.utils.unwrapObservable(self.FormFields.PublicationDate.MinValue) ||\r\n ko.utils.unwrapObservable(self.FormFields.PublicationDate.MaxValue) ||\r\n (ko.utils.unwrapObservable(self.FormFields.DocumentType.Values) &&\r\n self.FormFields.DocumentType.Values().length > 0) ||\r\n (ko.utils.unwrapObservable(self.FormFields.Rank\r\n .Values) &&\r\n self.FormFields.Rank.Values().length > 0) ||\r\n (ko.utils.unwrapObservable(self.FormFields.DissertationCouncilCode\r\n .Values) &&\r\n self.FormFields.DissertationCouncilCode.Values().length > 0) ||\r\n (ko.utils.unwrapObservable(self.FormFields.VakCode\r\n .Values) &&\r\n self.FormFields.VakCode.Values().length > 0) ||\r\n ko.utils.unwrapObservable(self.FormFields.CollectionNameRudn.Value) ||\r\n ko.utils.unwrapObservable(self.FormFields.DirectionCode.Value);\r\n });\r\n\r\n self.IsEmpty = ko.pureComputed(function() {\r\n return !self.SearchString()\r\n && !self.TopicSearchFileName()\r\n && !self.TopicSearchDocumentId()\r\n && !self.IsExtendedFilterFilled();\r\n });\r\n\r\n self.IsExtended = ko.observable(self.IsExtendedFilterFilled());\r\n\r\n var fileUploadOptions = {\r\n Url: window.page.urls.Search.UploadFileForTopicSearch,\r\n AutoUpload: true,\r\n FormData: {},\r\n DropZoneSelector: options.dropZoneSelector,\r\n MaxFileSize: 5 * 1024 * 1024 // TODO: временно\r\n };\r\n $.extend(fileUploadOptions.FormData, window.page.token);\r\n self.FileUpload = new FileUpload(fileUploadOptions);\r\n self.FileUpload.FileName.subscribe(function(newValue) {\r\n // Если добавили файл, перейти в режим поиска по файлу \r\n if (!!newValue) {\r\n self.setSearchMode(self.SearchModes.File);\r\n } else {\r\n self.setSearchMode(self.SearchModes.Text);\r\n }\r\n self.TopicSearchFileName(newValue);\r\n });\r\n\r\n self.Years = function () {\r\n var result = [{ Key: null, Value: \"\" }];\r\n ko.utils.arrayForEach(ko.utils.range(1800, new Date().getFullYear()).reverse(),\r\n function (item) {\r\n result.push({ Key: item, Value: item });\r\n });\r\n return result;\r\n }\r\n }\r\n\r\n SearchForm.prototype.cancelFileSearch = function (fileName) {\r\n var self = this;\r\n if (self.FileUpload.IsError()) {\r\n self.FileUpload.reset();\r\n } else if (self.FileUpload.IsLoading()) {\r\n self.FileUpload.cancelUploading();\r\n self.FileUpload.reset();\r\n } else {\r\n fileName = ko.unwrap(fileName);\r\n if (fileName) {\r\n utils.postJson.call(self,\r\n window.page.urls.Search.DeleteTopicSearchFile,\r\n fileName,\r\n function(result) {\r\n self.FileUpload.reset();\r\n });\r\n }\r\n else {\r\n self.TopicSearchFileName(\"\");\r\n self.TopicSearchDocumentId(null);\r\n self.setSearchMode(self.SearchModes.Text);\r\n }\r\n } \r\n }\r\n \r\n SearchForm.prototype.getFilterModel = function () {\r\n var self = this;\r\n if (!self.IsExtended()) {\r\n self.clearExtended();\r\n }\r\n return {\r\n SearchString: self.SearchMode() !== self.SearchModes.File ? self.SearchString() : \"\",\r\n TopicSearchFileName: self.SearchMode() === self.SearchModes.File ? self.TopicSearchFileName() : \"\",\r\n TopicSearchDocumentId: self.SearchMode() === self.SearchModes.File ? self.TopicSearchDocumentId() : null,\r\n FormFields: ko.toJS(self.FormFields)\r\n }\r\n }\r\n\r\n SearchForm.prototype.clearExtended = function () {\r\n var self = this;\r\n for (var field in self.FormFields) {\r\n if (self.FormFields.hasOwnProperty(field)) {\r\n self.FormFields[field].clear();\r\n }\r\n }\r\n }\r\n\r\n SearchForm.prototype.clear = function () {\r\n var self = this;\r\n self.SearchString(\"\");\r\n self.TopicSearchDocumentId(null);\r\n var fileName = self.TopicSearchFileName();\r\n if (fileName) {\r\n self.cancelFileSearch(fileName);\r\n }\r\n self.SearchMode(self.SearchModes.Text);\r\n self.clearExtended();\r\n }\r\n\r\n SearchForm.prototype.toggleExtended = function () {\r\n var self = this;\r\n self.IsExtended(!self.IsExtended());\r\n }\r\n\r\n SearchForm.prototype.setSearchMode = function (searchMode) {\r\n var self = this;\r\n self.SearchMode(searchMode);\r\n }\r\n return SearchForm;\r\n }\r\n);","define(\r\n [\r\n \"knockout\",\r\n \"jquery\",\r\n \"sa-utils\",\r\n \"moment\",\r\n \"sa-ko-validation\"\r\n ],\r\n function(ko, $, utils, moment) {\r\n var QuerySave = function(localization) {\r\n var self = this;\r\n self.Localization = localization || {};\r\n\r\n self.IsPopupOpen = ko.observable(false);\r\n self.IsLoading = ko.observable(false);\r\n self.Filter = null;\r\n self.Sorting = null;\r\n self.Document = null;\r\n self.QueryInfo = ko.validatedObservable({\r\n Name: ko.observable(\"\")\r\n .extend({\r\n required: true,\r\n maxLength: 50\r\n }),\r\n Description: ko.observable(\"\")\r\n });\r\n }\r\n QuerySave.prototype._generateDescription = function() {\r\n var self = this;\r\n var result = \"\";\r\n if (self.Filter.SearchString) {\r\n result += \"\\\"\" + self.Filter.SearchString + \"\\\"\\r\\n\";\r\n }\r\n var formFields = self.Filter.FormFields || {};\r\n for (var field in formFields) {\r\n if (formFields.hasOwnProperty(field)) {\r\n var description = formFields[field].getDescription();\r\n if (description) {\r\n result += description + \"\\r\\n\";\r\n }\r\n }\r\n }\r\n if (self.Filter.TopicSearchFileName) {\r\n result += self.Localization.file + \": \" + self.Filter.TopicSearchFileName + \"\\r\\n\";\r\n }\r\n if (self.Filter.TopicSearchDocumentId && self.Document) {\r\n result += self.Localization.document + \": \" + self.Document.Description() + \"\\r\\n\";\r\n }\r\n return result;\r\n } \r\n QuerySave.prototype.setQuery = function(filterModel, sortingModel, document) {\r\n var self = this;\r\n self.Filter = filterModel;\r\n self.Sorting = sortingModel;\r\n self.Document = document;\r\n self.QueryInfo().Description(self._generateDescription());\r\n }\r\n QuerySave.prototype.save = function() {\r\n var self = this;\r\n if (!self.QueryInfo.isValid()) {\r\n ko.validation.group(self.QueryInfo).showAllMessages();\r\n return;\r\n }\r\n\r\n utils.postJson.call(self,\r\n window.page.urls.Queries.Save,\r\n self,\r\n function(result) {\r\n self.IsPopupOpen(false);\r\n });\r\n }\r\n QuerySave.prototype.toJSON = function() {\r\n var copy = ko.toJS(this);\r\n copy.Name = copy.QueryInfo.Name;\r\n copy.Description = copy.QueryInfo.Description;\r\n delete copy.IsLoading;\r\n delete copy.QueryInfo;\r\n delete copy.IsPopupOpen;\r\n return copy;\r\n }\r\n return QuerySave;\r\n }\r\n);","define([],\r\n function() {\r\n var TopicInfo = function(item) {\r\n var self = this;\r\n\r\n item = item || {};\r\n\r\n self.Order = item.Order;\r\n self.Name = item.Name;\r\n self.Terms = item.Terms || [];\r\n self.Percent = item.Percent;\r\n\r\n self.TermsString = ko.pureComputed(function() {\r\n return self.Terms.join(\"\\n\");\r\n });\r\n }\r\n return TopicInfo;\r\n }\r\n);","/* */ \n\"format global\";\n\"deps ./chosen.css!\";\n\"deps jquery\";\n/*!\nChosen, a Select Box Enhancer for jQuery and Prototype\nby Patrick Filler for Harvest, http://getharvest.com\n\nVersion 1.6.2\nFull source at https://github.com/harvesthq/chosen\nCopyright (c) 2011-2016 Harvest http://getharvest.com\n\nMIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md\nThis file is generated by `grunt build`, do not edit it by hand.\n*/\n\n(function() {\n var $, AbstractChosen, Chosen, SelectParser, _ref,\n __hasProp = {}.hasOwnProperty,\n __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };\n\n SelectParser = (function() {\n function SelectParser() {\n this.options_index = 0;\n this.parsed = [];\n }\n\n SelectParser.prototype.add_node = function(child) {\n if (child.nodeName.toUpperCase() === \"OPTGROUP\") {\n return this.add_group(child);\n } else {\n return this.add_option(child);\n }\n };\n\n SelectParser.prototype.add_group = function(group) {\n var group_position, option, _i, _len, _ref, _results;\n group_position = this.parsed.length;\n this.parsed.push({\n array_index: group_position,\n group: true,\n label: this.escapeExpression(group.label),\n title: group.title ? group.title : void 0,\n children: 0,\n disabled: group.disabled,\n classes: group.className\n });\n _ref = group.childNodes;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n option = _ref[_i];\n _results.push(this.add_option(option, group_position, group.disabled));\n }\n return _results;\n };\n\n SelectParser.prototype.add_option = function(option, group_position, group_disabled) {\n if (option.nodeName.toUpperCase() === \"OPTION\") {\n if (option.text !== \"\") {\n if (group_position != null) {\n this.parsed[group_position].children += 1;\n }\n this.parsed.push({\n array_index: this.parsed.length,\n options_index: this.options_index,\n value: option.value,\n text: option.text,\n html: option.innerHTML,\n title: option.title ? option.title : void 0,\n selected: option.selected,\n disabled: group_disabled === true ? group_disabled : option.disabled,\n group_array_index: group_position,\n group_label: group_position != null ? this.parsed[group_position].label : null,\n classes: option.className,\n style: option.style.cssText\n });\n } else {\n this.parsed.push({\n array_index: this.parsed.length,\n options_index: this.options_index,\n empty: true\n });\n }\n return this.options_index += 1;\n }\n };\n\n SelectParser.prototype.escapeExpression = function(text) {\n var map, unsafe_chars;\n if ((text == null) || text === false) {\n return \"\";\n }\n if (!/[\\&\\<\\>\\\"\\'\\`]/.test(text)) {\n return text;\n }\n map = {\n \"<\": \"<\",\n \">\": \">\",\n '\"': \""\",\n \"'\": \"'\",\n \"`\": \"`\"\n };\n unsafe_chars = /&(?!\\w+;)|[\\<\\>\\\"\\'\\`]/g;\n return text.replace(unsafe_chars, function(chr) {\n return map[chr] || \"&\";\n });\n };\n\n return SelectParser;\n\n })();\n\n SelectParser.select_to_array = function(select) {\n var child, parser, _i, _len, _ref;\n parser = new SelectParser();\n _ref = select.childNodes;\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n child = _ref[_i];\n parser.add_node(child);\n }\n return parser.parsed;\n };\n\n AbstractChosen = (function() {\n function AbstractChosen(form_field, options) {\n this.form_field = form_field;\n this.options = options != null ? options : {};\n if (!AbstractChosen.browser_is_supported()) {\n return;\n }\n this.is_multiple = this.form_field.multiple;\n this.set_default_text();\n this.set_default_values();\n this.setup();\n this.set_up_html();\n this.register_observers();\n this.on_ready();\n }\n\n AbstractChosen.prototype.set_default_values = function() {\n var _this = this;\n this.click_test_action = function(evt) {\n return _this.test_active_click(evt);\n };\n this.activate_action = function(evt) {\n return _this.activate_field(evt);\n };\n this.active_field = false;\n this.mouse_on_container = false;\n this.results_showing = false;\n this.result_highlighted = null;\n this.allow_single_deselect = (this.options.allow_single_deselect != null) && (this.form_field.options[0] != null) && this.form_field.options[0].text === \"\" ? this.options.allow_single_deselect : false;\n this.disable_search_threshold = this.options.disable_search_threshold || 0;\n this.disable_search = this.options.disable_search || false;\n this.enable_split_word_search = this.options.enable_split_word_search != null ? this.options.enable_split_word_search : true;\n this.group_search = this.options.group_search != null ? this.options.group_search : true;\n this.search_contains = this.options.search_contains || false;\n this.single_backstroke_delete = this.options.single_backstroke_delete != null ? this.options.single_backstroke_delete : true;\n this.max_selected_options = this.options.max_selected_options || Infinity;\n this.inherit_select_classes = this.options.inherit_select_classes || false;\n this.display_selected_options = this.options.display_selected_options != null ? this.options.display_selected_options : true;\n this.display_disabled_options = this.options.display_disabled_options != null ? this.options.display_disabled_options : true;\n this.include_group_label_in_selected = this.options.include_group_label_in_selected || false;\n this.max_shown_results = this.options.max_shown_results || Number.POSITIVE_INFINITY;\n return this.case_sensitive_search = this.options.case_sensitive_search || false;\n };\n\n AbstractChosen.prototype.set_default_text = function() {\n if (this.form_field.getAttribute(\"data-placeholder\")) {\n this.default_text = this.form_field.getAttribute(\"data-placeholder\");\n } else if (this.is_multiple) {\n this.default_text = this.options.placeholder_text_multiple || this.options.placeholder_text || AbstractChosen.default_multiple_text;\n } else {\n this.default_text = this.options.placeholder_text_single || this.options.placeholder_text || AbstractChosen.default_single_text;\n }\n return this.results_none_found = this.form_field.getAttribute(\"data-no_results_text\") || this.options.no_results_text || AbstractChosen.default_no_result_text;\n };\n\n AbstractChosen.prototype.choice_label = function(item) {\n if (this.include_group_label_in_selected && (item.group_label != null)) {\n return \"\" + item.group_label + \"\" + item.html;\n } else {\n return item.html;\n }\n };\n\n AbstractChosen.prototype.mouse_enter = function() {\n return this.mouse_on_container = true;\n };\n\n AbstractChosen.prototype.mouse_leave = function() {\n return this.mouse_on_container = false;\n };\n\n AbstractChosen.prototype.input_focus = function(evt) {\n var _this = this;\n if (this.is_multiple) {\n if (!this.active_field) {\n return setTimeout((function() {\n return _this.container_mousedown();\n }), 50);\n }\n } else {\n if (!this.active_field) {\n return this.activate_field();\n }\n }\n };\n\n AbstractChosen.prototype.input_blur = function(evt) {\n var _this = this;\n if (!this.mouse_on_container) {\n this.active_field = false;\n return setTimeout((function() {\n return _this.blur_test();\n }), 100);\n }\n };\n\n AbstractChosen.prototype.results_option_build = function(options) {\n var content, data, data_content, shown_results, _i, _len, _ref;\n content = '';\n shown_results = 0;\n _ref = this.results_data;\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n data = _ref[_i];\n data_content = '';\n if (data.group) {\n data_content = this.result_add_group(data);\n } else {\n data_content = this.result_add_option(data);\n }\n if (data_content !== '') {\n shown_results++;\n content += data_content;\n }\n if (options != null ? options.first : void 0) {\n if (data.selected && this.is_multiple) {\n this.choice_build(data);\n } else if (data.selected && !this.is_multiple) {\n this.single_set_selected_text(this.choice_label(data));\n }\n }\n if (shown_results >= this.max_shown_results) {\n break;\n }\n }\n return content;\n };\n\n AbstractChosen.prototype.result_add_option = function(option) {\n var classes, option_el;\n if (!option.search_match) {\n return '';\n }\n if (!this.include_option_in_results(option)) {\n return '';\n }\n classes = [];\n if (!option.disabled && !(option.selected && this.is_multiple)) {\n classes.push(\"active-result\");\n }\n if (option.disabled && !(option.selected && this.is_multiple)) {\n classes.push(\"disabled-result\");\n }\n if (option.selected) {\n classes.push(\"result-selected\");\n }\n if (option.group_array_index != null) {\n classes.push(\"group-option\");\n }\n if (option.classes !== \"\") {\n classes.push(option.classes);\n }\n option_el = document.createElement(\"li\");\n option_el.className = classes.join(\" \");\n option_el.style.cssText = option.style;\n option_el.setAttribute(\"data-option-array-index\", option.array_index);\n option_el.innerHTML = option.search_text;\n if (option.title) {\n option_el.title = option.title;\n }\n return this.outerHTML(option_el);\n };\n\n AbstractChosen.prototype.result_add_group = function(group) {\n var classes, group_el;\n if (!(group.search_match || group.group_match)) {\n return '';\n }\n if (!(group.active_options > 0)) {\n return '';\n }\n classes = [];\n classes.push(\"group-result\");\n if (group.classes) {\n classes.push(group.classes);\n }\n group_el = document.createElement(\"li\");\n group_el.className = classes.join(\" \");\n group_el.innerHTML = group.search_text;\n if (group.title) {\n group_el.title = group.title;\n }\n return this.outerHTML(group_el);\n };\n\n AbstractChosen.prototype.results_update_field = function() {\n this.set_default_text();\n if (!this.is_multiple) {\n this.results_reset_cleanup();\n }\n this.result_clear_highlight();\n this.results_build();\n if (this.results_showing) {\n return this.winnow_results();\n }\n };\n\n AbstractChosen.prototype.reset_single_select_options = function() {\n var result, _i, _len, _ref, _results;\n _ref = this.results_data;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n result = _ref[_i];\n if (result.selected) {\n _results.push(result.selected = false);\n } else {\n _results.push(void 0);\n }\n }\n return _results;\n };\n\n AbstractChosen.prototype.results_toggle = function() {\n if (this.results_showing) {\n return this.results_hide();\n } else {\n return this.results_show();\n }\n };\n\n AbstractChosen.prototype.results_search = function(evt) {\n if (this.results_showing) {\n return this.winnow_results();\n } else {\n return this.results_show();\n }\n };\n\n AbstractChosen.prototype.winnow_results = function() {\n var escapedSearchText, option, regex, results, results_group, searchText, startpos, text, zregex, _i, _len, _ref;\n this.no_results_clear();\n results = 0;\n searchText = this.get_search_text();\n escapedSearchText = searchText.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\");\n zregex = new RegExp(escapedSearchText, 'i');\n regex = this.get_search_regex(escapedSearchText);\n _ref = this.results_data;\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n option = _ref[_i];\n option.search_match = false;\n results_group = null;\n if (this.include_option_in_results(option)) {\n if (option.group) {\n option.group_match = false;\n option.active_options = 0;\n }\n if ((option.group_array_index != null) && this.results_data[option.group_array_index]) {\n results_group = this.results_data[option.group_array_index];\n if (results_group.active_options === 0 && results_group.search_match) {\n results += 1;\n }\n results_group.active_options += 1;\n }\n option.search_text = option.group ? option.label : option.html;\n if (!(option.group && !this.group_search)) {\n option.search_match = this.search_string_match(option.search_text, regex);\n if (option.search_match && !option.group) {\n results += 1;\n }\n if (option.search_match) {\n if (searchText.length) {\n startpos = option.search_text.search(zregex);\n text = option.search_text.substr(0, startpos + searchText.length) + '' + option.search_text.substr(startpos + searchText.length);\n option.search_text = text.substr(0, startpos) + '' + text.substr(startpos);\n }\n if (results_group != null) {\n results_group.group_match = true;\n }\n } else if ((option.group_array_index != null) && this.results_data[option.group_array_index].search_match) {\n option.search_match = true;\n }\n }\n }\n }\n this.result_clear_highlight();\n if (results < 1 && searchText.length) {\n this.update_results_content(\"\");\n return this.no_results(searchText);\n } else {\n this.update_results_content(this.results_option_build());\n return this.winnow_results_set_highlight();\n }\n };\n\n AbstractChosen.prototype.get_search_regex = function(escaped_search_string) {\n var regex_anchor, regex_flag;\n regex_anchor = this.search_contains ? \"\" : \"^\";\n regex_flag = this.case_sensitive_search ? \"\" : \"i\";\n return new RegExp(regex_anchor + escaped_search_string, regex_flag);\n };\n\n AbstractChosen.prototype.search_string_match = function(search_string, regex) {\n var part, parts, _i, _len;\n if (regex.test(search_string)) {\n return true;\n } else if (this.enable_split_word_search && (search_string.indexOf(\" \") >= 0 || search_string.indexOf(\"[\") === 0)) {\n parts = search_string.replace(/\\[|\\]/g, \"\").split(\" \");\n if (parts.length) {\n for (_i = 0, _len = parts.length; _i < _len; _i++) {\n part = parts[_i];\n if (regex.test(part)) {\n return true;\n }\n }\n }\n }\n };\n\n AbstractChosen.prototype.choices_count = function() {\n var option, _i, _len, _ref;\n if (this.selected_option_count != null) {\n return this.selected_option_count;\n }\n this.selected_option_count = 0;\n _ref = this.form_field.options;\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n option = _ref[_i];\n if (option.selected) {\n this.selected_option_count += 1;\n }\n }\n return this.selected_option_count;\n };\n\n AbstractChosen.prototype.choices_click = function(evt) {\n evt.preventDefault();\n if (!(this.results_showing || this.is_disabled)) {\n return this.results_show();\n }\n };\n\n AbstractChosen.prototype.keyup_checker = function(evt) {\n var stroke, _ref;\n stroke = (_ref = evt.which) != null ? _ref : evt.keyCode;\n this.search_field_scale();\n switch (stroke) {\n case 8:\n if (this.is_multiple && this.backstroke_length < 1 && this.choices_count() > 0) {\n return this.keydown_backstroke();\n } else if (!this.pending_backstroke) {\n this.result_clear_highlight();\n return this.results_search();\n }\n break;\n case 13:\n evt.preventDefault();\n if (this.results_showing) {\n return this.result_select(evt);\n }\n break;\n case 27:\n if (this.results_showing) {\n this.results_hide();\n }\n return true;\n case 9:\n case 38:\n case 40:\n case 16:\n case 91:\n case 17:\n case 18:\n break;\n default:\n return this.results_search();\n }\n };\n\n AbstractChosen.prototype.clipboard_event_checker = function(evt) {\n var _this = this;\n return setTimeout((function() {\n return _this.results_search();\n }), 50);\n };\n\n AbstractChosen.prototype.container_width = function() {\n if (this.options.width != null) {\n return this.options.width;\n } else {\n return \"\" + this.form_field.offsetWidth + \"px\";\n }\n };\n\n AbstractChosen.prototype.include_option_in_results = function(option) {\n if (this.is_multiple && (!this.display_selected_options && option.selected)) {\n return false;\n }\n if (!this.display_disabled_options && option.disabled) {\n return false;\n }\n if (option.empty) {\n return false;\n }\n return true;\n };\n\n AbstractChosen.prototype.search_results_touchstart = function(evt) {\n this.touch_started = true;\n return this.search_results_mouseover(evt);\n };\n\n AbstractChosen.prototype.search_results_touchmove = function(evt) {\n this.touch_started = false;\n return this.search_results_mouseout(evt);\n };\n\n AbstractChosen.prototype.search_results_touchend = function(evt) {\n if (this.touch_started) {\n return this.search_results_mouseup(evt);\n }\n };\n\n AbstractChosen.prototype.outerHTML = function(element) {\n var tmp;\n if (element.outerHTML) {\n return element.outerHTML;\n }\n tmp = document.createElement(\"div\");\n tmp.appendChild(element);\n return tmp.innerHTML;\n };\n\n AbstractChosen.browser_is_supported = function() {\n if (\"Microsoft Internet Explorer\" === window.navigator.appName) {\n return document.documentMode >= 8;\n }\n if (/iP(od|hone)/i.test(window.navigator.userAgent) || /IEMobile/i.test(window.navigator.userAgent) || /Windows Phone/i.test(window.navigator.userAgent) || /BlackBerry/i.test(window.navigator.userAgent) || /BB10/i.test(window.navigator.userAgent) || /Android.*Mobile/i.test(window.navigator.userAgent)) {\n return false;\n }\n return true;\n };\n\n AbstractChosen.default_multiple_text = \"Select Some Options\";\n\n AbstractChosen.default_single_text = \"Select an Option\";\n\n AbstractChosen.default_no_result_text = \"No results match\";\n\n return AbstractChosen;\n\n })();\n\n $ = jQuery;\n\n $.fn.extend({\n chosen: function(options) {\n if (!AbstractChosen.browser_is_supported()) {\n return this;\n }\n return this.each(function(input_field) {\n var $this, chosen;\n $this = $(this);\n chosen = $this.data('chosen');\n if (options === 'destroy') {\n if (chosen instanceof Chosen) {\n chosen.destroy();\n }\n return;\n }\n if (!(chosen instanceof Chosen)) {\n $this.data('chosen', new Chosen(this, options));\n }\n });\n }\n });\n\n Chosen = (function(_super) {\n __extends(Chosen, _super);\n\n function Chosen() {\n _ref = Chosen.__super__.constructor.apply(this, arguments);\n return _ref;\n }\n\n Chosen.prototype.setup = function() {\n this.form_field_jq = $(this.form_field);\n this.current_selectedIndex = this.form_field.selectedIndex;\n return this.is_rtl = this.form_field_jq.hasClass(\"chosen-rtl\");\n };\n\n Chosen.prototype.set_up_html = function() {\n var container_classes, container_props;\n container_classes = [\"chosen-container\"];\n container_classes.push(\"chosen-container-\" + (this.is_multiple ? \"multi\" : \"single\"));\n if (this.inherit_select_classes && this.form_field.className) {\n container_classes.push(this.form_field.className);\n }\n if (this.is_rtl) {\n container_classes.push(\"chosen-rtl\");\n }\n container_props = {\n 'class': container_classes.join(' '),\n 'style': \"width: \" + (this.container_width()) + \";\",\n 'title': this.form_field.title\n };\n if (this.form_field.id.length) {\n container_props.id = this.form_field.id.replace(/[^\\w]/g, '_') + \"_chosen\";\n }\n this.container = $(\"
\", container_props);\n if (this.is_multiple) {\n this.container.html('
    ');\n } else {\n this.container.html('' + this.default_text + '
      ');\n }\n this.form_field_jq.hide().after(this.container);\n this.dropdown = this.container.find('div.chosen-drop').first();\n this.search_field = this.container.find('input').first();\n this.search_results = this.container.find('ul.chosen-results').first();\n this.search_field_scale();\n this.search_no_results = this.container.find('li.no-results').first();\n if (this.is_multiple) {\n this.search_choices = this.container.find('ul.chosen-choices').first();\n this.search_container = this.container.find('li.search-field').first();\n } else {\n this.search_container = this.container.find('div.chosen-search').first();\n this.selected_item = this.container.find('.chosen-single').first();\n }\n this.results_build();\n this.set_tab_index();\n return this.set_label_behavior();\n };\n\n Chosen.prototype.on_ready = function() {\n return this.form_field_jq.trigger(\"chosen:ready\", {\n chosen: this\n });\n };\n\n Chosen.prototype.register_observers = function() {\n var _this = this;\n this.container.bind('touchstart.chosen', function(evt) {\n _this.container_mousedown(evt);\n return evt.preventDefault();\n });\n this.container.bind('touchend.chosen', function(evt) {\n _this.container_mouseup(evt);\n return evt.preventDefault();\n });\n this.container.bind('mousedown.chosen', function(evt) {\n _this.container_mousedown(evt);\n });\n this.container.bind('mouseup.chosen', function(evt) {\n _this.container_mouseup(evt);\n });\n this.container.bind('mouseenter.chosen', function(evt) {\n _this.mouse_enter(evt);\n });\n this.container.bind('mouseleave.chosen', function(evt) {\n _this.mouse_leave(evt);\n });\n this.search_results.bind('mouseup.chosen', function(evt) {\n _this.search_results_mouseup(evt);\n });\n this.search_results.bind('mouseover.chosen', function(evt) {\n _this.search_results_mouseover(evt);\n });\n this.search_results.bind('mouseout.chosen', function(evt) {\n _this.search_results_mouseout(evt);\n });\n this.search_results.bind('mousewheel.chosen DOMMouseScroll.chosen', function(evt) {\n _this.search_results_mousewheel(evt);\n });\n this.search_results.bind('touchstart.chosen', function(evt) {\n _this.search_results_touchstart(evt);\n });\n this.search_results.bind('touchmove.chosen', function(evt) {\n _this.search_results_touchmove(evt);\n });\n this.search_results.bind('touchend.chosen', function(evt) {\n _this.search_results_touchend(evt);\n });\n this.form_field_jq.bind(\"chosen:updated.chosen\", function(evt) {\n _this.results_update_field(evt);\n });\n this.form_field_jq.bind(\"chosen:activate.chosen\", function(evt) {\n _this.activate_field(evt);\n });\n this.form_field_jq.bind(\"chosen:open.chosen\", function(evt) {\n _this.container_mousedown(evt);\n });\n this.form_field_jq.bind(\"chosen:close.chosen\", function(evt) {\n _this.input_blur(evt);\n });\n this.search_field.bind('blur.chosen', function(evt) {\n _this.input_blur(evt);\n });\n this.search_field.bind('keyup.chosen', function(evt) {\n _this.keyup_checker(evt);\n });\n this.search_field.bind('keydown.chosen', function(evt) {\n _this.keydown_checker(evt);\n });\n this.search_field.bind('focus.chosen', function(evt) {\n _this.input_focus(evt);\n });\n this.search_field.bind('cut.chosen', function(evt) {\n _this.clipboard_event_checker(evt);\n });\n this.search_field.bind('paste.chosen', function(evt) {\n _this.clipboard_event_checker(evt);\n });\n if (this.is_multiple) {\n return this.search_choices.bind('click.chosen', function(evt) {\n _this.choices_click(evt);\n });\n } else {\n return this.container.bind('click.chosen', function(evt) {\n evt.preventDefault();\n });\n }\n };\n\n Chosen.prototype.destroy = function() {\n $(this.container[0].ownerDocument).unbind(\"click.chosen\", this.click_test_action);\n if (this.search_field[0].tabIndex) {\n this.form_field_jq[0].tabIndex = this.search_field[0].tabIndex;\n }\n this.container.remove();\n this.form_field_jq.removeData('chosen');\n return this.form_field_jq.show();\n };\n\n Chosen.prototype.search_field_disabled = function() {\n this.is_disabled = this.form_field_jq[0].disabled;\n if (this.is_disabled) {\n this.container.addClass('chosen-disabled');\n this.search_field[0].disabled = true;\n if (!this.is_multiple) {\n this.selected_item.unbind(\"focus.chosen\", this.activate_action);\n }\n return this.close_field();\n } else {\n this.container.removeClass('chosen-disabled');\n this.search_field[0].disabled = false;\n if (!this.is_multiple) {\n return this.selected_item.bind(\"focus.chosen\", this.activate_action);\n }\n }\n };\n\n Chosen.prototype.container_mousedown = function(evt) {\n if (!this.is_disabled) {\n if (evt && evt.type === \"mousedown\" && !this.results_showing) {\n evt.preventDefault();\n }\n if (!((evt != null) && ($(evt.target)).hasClass(\"search-choice-close\"))) {\n if (!this.active_field) {\n if (this.is_multiple) {\n this.search_field.val(\"\");\n }\n $(this.container[0].ownerDocument).bind('click.chosen', this.click_test_action);\n this.results_show();\n } else if (!this.is_multiple && evt && (($(evt.target)[0] === this.selected_item[0]) || $(evt.target).parents(\"a.chosen-single\").length)) {\n evt.preventDefault();\n this.results_toggle();\n }\n return this.activate_field();\n }\n }\n };\n\n Chosen.prototype.container_mouseup = function(evt) {\n if (evt.target.nodeName === \"ABBR\" && !this.is_disabled) {\n return this.results_reset(evt);\n }\n };\n\n Chosen.prototype.search_results_mousewheel = function(evt) {\n var delta;\n if (evt.originalEvent) {\n delta = evt.originalEvent.deltaY || -evt.originalEvent.wheelDelta || evt.originalEvent.detail;\n }\n if (delta != null) {\n evt.preventDefault();\n if (evt.type === 'DOMMouseScroll') {\n delta = delta * 40;\n }\n return this.search_results.scrollTop(delta + this.search_results.scrollTop());\n }\n };\n\n Chosen.prototype.blur_test = function(evt) {\n if (!this.active_field && this.container.hasClass(\"chosen-container-active\")) {\n return this.close_field();\n }\n };\n\n Chosen.prototype.close_field = function() {\n $(this.container[0].ownerDocument).unbind(\"click.chosen\", this.click_test_action);\n this.active_field = false;\n this.results_hide();\n this.container.removeClass(\"chosen-container-active\");\n this.clear_backstroke();\n this.show_search_field_default();\n return this.search_field_scale();\n };\n\n Chosen.prototype.activate_field = function() {\n this.container.addClass(\"chosen-container-active\");\n this.active_field = true;\n this.search_field.val(this.search_field.val());\n return this.search_field.focus();\n };\n\n Chosen.prototype.test_active_click = function(evt) {\n var active_container;\n active_container = $(evt.target).closest('.chosen-container');\n if (active_container.length && this.container[0] === active_container[0]) {\n return this.active_field = true;\n } else {\n return this.close_field();\n }\n };\n\n Chosen.prototype.results_build = function() {\n this.parsing = true;\n this.selected_option_count = null;\n this.results_data = SelectParser.select_to_array(this.form_field);\n if (this.is_multiple) {\n this.search_choices.find(\"li.search-choice\").remove();\n } else if (!this.is_multiple) {\n this.single_set_selected_text();\n if (this.disable_search || this.form_field.options.length <= this.disable_search_threshold) {\n this.search_field[0].readOnly = true;\n this.container.addClass(\"chosen-container-single-nosearch\");\n } else {\n this.search_field[0].readOnly = false;\n this.container.removeClass(\"chosen-container-single-nosearch\");\n }\n }\n this.update_results_content(this.results_option_build({\n first: true\n }));\n this.search_field_disabled();\n this.show_search_field_default();\n this.search_field_scale();\n return this.parsing = false;\n };\n\n Chosen.prototype.result_do_highlight = function(el) {\n var high_bottom, high_top, maxHeight, visible_bottom, visible_top;\n if (el.length) {\n this.result_clear_highlight();\n this.result_highlight = el;\n this.result_highlight.addClass(\"highlighted\");\n maxHeight = parseInt(this.search_results.css(\"maxHeight\"), 10);\n visible_top = this.search_results.scrollTop();\n visible_bottom = maxHeight + visible_top;\n high_top = this.result_highlight.position().top + this.search_results.scrollTop();\n high_bottom = high_top + this.result_highlight.outerHeight();\n if (high_bottom >= visible_bottom) {\n return this.search_results.scrollTop((high_bottom - maxHeight) > 0 ? high_bottom - maxHeight : 0);\n } else if (high_top < visible_top) {\n return this.search_results.scrollTop(high_top);\n }\n }\n };\n\n Chosen.prototype.result_clear_highlight = function() {\n if (this.result_highlight) {\n this.result_highlight.removeClass(\"highlighted\");\n }\n return this.result_highlight = null;\n };\n\n Chosen.prototype.results_show = function() {\n if (this.is_multiple && this.max_selected_options <= this.choices_count()) {\n this.form_field_jq.trigger(\"chosen:maxselected\", {\n chosen: this\n });\n return false;\n }\n this.container.addClass(\"chosen-with-drop\");\n this.results_showing = true;\n this.search_field.focus();\n this.search_field.val(this.search_field.val());\n this.winnow_results();\n return this.form_field_jq.trigger(\"chosen:showing_dropdown\", {\n chosen: this\n });\n };\n\n Chosen.prototype.update_results_content = function(content) {\n return this.search_results.html(content);\n };\n\n Chosen.prototype.results_hide = function() {\n if (this.results_showing) {\n this.result_clear_highlight();\n this.container.removeClass(\"chosen-with-drop\");\n this.form_field_jq.trigger(\"chosen:hiding_dropdown\", {\n chosen: this\n });\n }\n return this.results_showing = false;\n };\n\n Chosen.prototype.set_tab_index = function(el) {\n var ti;\n if (this.form_field.tabIndex) {\n ti = this.form_field.tabIndex;\n this.form_field.tabIndex = -1;\n return this.search_field[0].tabIndex = ti;\n }\n };\n\n Chosen.prototype.set_label_behavior = function() {\n var _this = this;\n this.form_field_label = this.form_field_jq.parents(\"label\");\n if (!this.form_field_label.length && this.form_field.id.length) {\n this.form_field_label = $(\"label[for='\" + this.form_field.id + \"']\");\n }\n if (this.form_field_label.length > 0) {\n return this.form_field_label.bind('click.chosen', function(evt) {\n if (_this.is_multiple) {\n return _this.container_mousedown(evt);\n } else {\n return _this.activate_field();\n }\n });\n }\n };\n\n Chosen.prototype.show_search_field_default = function() {\n if (this.is_multiple && this.choices_count() < 1 && !this.active_field) {\n this.search_field.val(this.default_text);\n return this.search_field.addClass(\"default\");\n } else {\n this.search_field.val(\"\");\n return this.search_field.removeClass(\"default\");\n }\n };\n\n Chosen.prototype.search_results_mouseup = function(evt) {\n var target;\n target = $(evt.target).hasClass(\"active-result\") ? $(evt.target) : $(evt.target).parents(\".active-result\").first();\n if (target.length) {\n this.result_highlight = target;\n this.result_select(evt);\n return this.search_field.focus();\n }\n };\n\n Chosen.prototype.search_results_mouseover = function(evt) {\n var target;\n target = $(evt.target).hasClass(\"active-result\") ? $(evt.target) : $(evt.target).parents(\".active-result\").first();\n if (target) {\n return this.result_do_highlight(target);\n }\n };\n\n Chosen.prototype.search_results_mouseout = function(evt) {\n if ($(evt.target).hasClass(\"active-result\" || $(evt.target).parents('.active-result').first())) {\n return this.result_clear_highlight();\n }\n };\n\n Chosen.prototype.choice_build = function(item) {\n var choice, close_link,\n _this = this;\n choice = $('
    • ', {\n \"class\": \"search-choice\"\n }).html(\"\" + (this.choice_label(item)) + \"\");\n if (item.disabled) {\n choice.addClass('search-choice-disabled');\n } else {\n close_link = $('', {\n \"class\": 'search-choice-close',\n 'data-option-array-index': item.array_index\n });\n close_link.bind('click.chosen', function(evt) {\n return _this.choice_destroy_link_click(evt);\n });\n choice.append(close_link);\n }\n return this.search_container.before(choice);\n };\n\n Chosen.prototype.choice_destroy_link_click = function(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n if (!this.is_disabled) {\n return this.choice_destroy($(evt.target));\n }\n };\n\n Chosen.prototype.choice_destroy = function(link) {\n if (this.result_deselect(link[0].getAttribute(\"data-option-array-index\"))) {\n this.show_search_field_default();\n if (this.is_multiple && this.choices_count() > 0 && this.search_field.val().length < 1) {\n this.results_hide();\n }\n link.parents('li').first().remove();\n return this.search_field_scale();\n }\n };\n\n Chosen.prototype.results_reset = function() {\n this.reset_single_select_options();\n this.form_field.options[0].selected = true;\n this.single_set_selected_text();\n this.show_search_field_default();\n this.results_reset_cleanup();\n this.form_field_jq.trigger(\"change\");\n if (this.active_field) {\n return this.results_hide();\n }\n };\n\n Chosen.prototype.results_reset_cleanup = function() {\n this.current_selectedIndex = this.form_field.selectedIndex;\n return this.selected_item.find(\"abbr\").remove();\n };\n\n Chosen.prototype.result_select = function(evt) {\n var high, item;\n if (this.result_highlight) {\n high = this.result_highlight;\n this.result_clear_highlight();\n if (this.is_multiple && this.max_selected_options <= this.choices_count()) {\n this.form_field_jq.trigger(\"chosen:maxselected\", {\n chosen: this\n });\n return false;\n }\n if (this.is_multiple) {\n high.removeClass(\"active-result\");\n } else {\n this.reset_single_select_options();\n }\n high.addClass(\"result-selected\");\n item = this.results_data[high[0].getAttribute(\"data-option-array-index\")];\n item.selected = true;\n this.form_field.options[item.options_index].selected = true;\n this.selected_option_count = null;\n if (this.is_multiple) {\n this.choice_build(item);\n } else {\n this.single_set_selected_text(this.choice_label(item));\n }\n if (!((evt.metaKey || evt.ctrlKey) && this.is_multiple)) {\n this.results_hide();\n }\n this.show_search_field_default();\n if (this.is_multiple || this.form_field.selectedIndex !== this.current_selectedIndex) {\n this.form_field_jq.trigger(\"change\", {\n 'selected': this.form_field.options[item.options_index].value\n });\n }\n this.current_selectedIndex = this.form_field.selectedIndex;\n evt.preventDefault();\n return this.search_field_scale();\n }\n };\n\n Chosen.prototype.single_set_selected_text = function(text) {\n if (text == null) {\n text = this.default_text;\n }\n if (text === this.default_text) {\n this.selected_item.addClass(\"chosen-default\");\n } else {\n this.single_deselect_control_build();\n this.selected_item.removeClass(\"chosen-default\");\n }\n return this.selected_item.find(\"span\").html(text);\n };\n\n Chosen.prototype.result_deselect = function(pos) {\n var result_data;\n result_data = this.results_data[pos];\n if (!this.form_field.options[result_data.options_index].disabled) {\n result_data.selected = false;\n this.form_field.options[result_data.options_index].selected = false;\n this.selected_option_count = null;\n this.result_clear_highlight();\n if (this.results_showing) {\n this.winnow_results();\n }\n this.form_field_jq.trigger(\"change\", {\n deselected: this.form_field.options[result_data.options_index].value\n });\n this.search_field_scale();\n return true;\n } else {\n return false;\n }\n };\n\n Chosen.prototype.single_deselect_control_build = function() {\n if (!this.allow_single_deselect) {\n return;\n }\n if (!this.selected_item.find(\"abbr\").length) {\n this.selected_item.find(\"span\").first().after(\"\");\n }\n return this.selected_item.addClass(\"chosen-single-with-deselect\");\n };\n\n Chosen.prototype.get_search_text = function() {\n return $('
      ').text($.trim(this.search_field.val())).html();\n };\n\n Chosen.prototype.winnow_results_set_highlight = function() {\n var do_high, selected_results;\n selected_results = !this.is_multiple ? this.search_results.find(\".result-selected.active-result\") : [];\n do_high = selected_results.length ? selected_results.first() : this.search_results.find(\".active-result\").first();\n if (do_high != null) {\n return this.result_do_highlight(do_high);\n }\n };\n\n Chosen.prototype.no_results = function(terms) {\n var no_results_html;\n no_results_html = $('
    • ' + this.results_none_found + ' \"\"
    • ');\n no_results_html.find(\"span\").first().html(terms);\n this.search_results.append(no_results_html);\n return this.form_field_jq.trigger(\"chosen:no_results\", {\n chosen: this\n });\n };\n\n Chosen.prototype.no_results_clear = function() {\n return this.search_results.find(\".no-results\").remove();\n };\n\n Chosen.prototype.keydown_arrow = function() {\n var next_sib;\n if (this.results_showing && this.result_highlight) {\n next_sib = this.result_highlight.nextAll(\"li.active-result\").first();\n if (next_sib) {\n return this.result_do_highlight(next_sib);\n }\n } else {\n return this.results_show();\n }\n };\n\n Chosen.prototype.keyup_arrow = function() {\n var prev_sibs;\n if (!this.results_showing && !this.is_multiple) {\n return this.results_show();\n } else if (this.result_highlight) {\n prev_sibs = this.result_highlight.prevAll(\"li.active-result\");\n if (prev_sibs.length) {\n return this.result_do_highlight(prev_sibs.first());\n } else {\n if (this.choices_count() > 0) {\n this.results_hide();\n }\n return this.result_clear_highlight();\n }\n }\n };\n\n Chosen.prototype.keydown_backstroke = function() {\n var next_available_destroy;\n if (this.pending_backstroke) {\n this.choice_destroy(this.pending_backstroke.find(\"a\").first());\n return this.clear_backstroke();\n } else {\n next_available_destroy = this.search_container.siblings(\"li.search-choice\").last();\n if (next_available_destroy.length && !next_available_destroy.hasClass(\"search-choice-disabled\")) {\n this.pending_backstroke = next_available_destroy;\n if (this.single_backstroke_delete) {\n return this.keydown_backstroke();\n } else {\n return this.pending_backstroke.addClass(\"search-choice-focus\");\n }\n }\n }\n };\n\n Chosen.prototype.clear_backstroke = function() {\n if (this.pending_backstroke) {\n this.pending_backstroke.removeClass(\"search-choice-focus\");\n }\n return this.pending_backstroke = null;\n };\n\n Chosen.prototype.keydown_checker = function(evt) {\n var stroke, _ref1;\n stroke = (_ref1 = evt.which) != null ? _ref1 : evt.keyCode;\n this.search_field_scale();\n if (stroke !== 8 && this.pending_backstroke) {\n this.clear_backstroke();\n }\n switch (stroke) {\n case 8:\n this.backstroke_length = this.search_field.val().length;\n break;\n case 9:\n if (this.results_showing && !this.is_multiple) {\n this.result_select(evt);\n }\n this.mouse_on_container = false;\n break;\n case 13:\n if (this.results_showing) {\n evt.preventDefault();\n }\n break;\n case 32:\n if (this.disable_search) {\n evt.preventDefault();\n }\n break;\n case 38:\n evt.preventDefault();\n this.keyup_arrow();\n break;\n case 40:\n evt.preventDefault();\n this.keydown_arrow();\n break;\n }\n };\n\n Chosen.prototype.search_field_scale = function() {\n var div, f_width, h, style, style_block, styles, w, _i, _len;\n if (this.is_multiple) {\n h = 0;\n w = 0;\n style_block = \"position:absolute; left: -1000px; top: -1000px; display:none;\";\n styles = ['font-size', 'font-style', 'font-weight', 'font-family', 'line-height', 'text-transform', 'letter-spacing'];\n for (_i = 0, _len = styles.length; _i < _len; _i++) {\n style = styles[_i];\n style_block += style + \":\" + this.search_field.css(style) + \";\";\n }\n div = $('
      ', {\n 'style': style_block\n });\n div.text(this.search_field.val());\n $('body').append(div);\n w = div.width() + 25;\n div.remove();\n f_width = this.container.outerWidth();\n if (w > f_width - 10) {\n w = f_width - 10;\n }\n return this.search_field.css({\n 'width': w + 'px'\n });\n }\n };\n\n return Chosen;\n\n })(AbstractChosen);\n\n}).call(this);\n","module.exports = require(\"github:harvesthq/chosen@1.6.2/chosen.jquery\");","define([\"jquery\", \"knockout\", \"chosen\", \"styles/custom/chosen-custom.css!\"],\r\n function($, ko) {\r\n ko.bindingHandlers.multiselect = {\r\n init: function (el, valueAccessor, allBindings, viewModel) {\r\n var settings = ko.utils.unwrapObservable(allBindings().multiselect) || {};\r\n $.extend(settings,\r\n {\r\n no_results_text: \"Совпадений не найдено:\"\r\n });\r\n $(el).chosen(settings);\r\n $(el).on('change', function (evt, params) {\r\n var checked = !!params.selected;\r\n var changedValue = checked ? params.selected : params.deselected;\r\n\r\n if (checked) {\r\n if (!allBindings.has(\"options\"))\r\n return;\r\n var options = ko.utils.unwrapObservable(allBindings.get(\"options\"));\r\n\r\n var valueToAdd = null;\r\n if (allBindings.has(\"optionsValue\")) { // работаем с объектами\r\n var optionsValue = allBindings.get(\"optionsValue\");\r\n var match = ko.utils.arrayFirst(options,\r\n function (item) {\r\n return item[optionsValue] == changedValue; // ==, так как сравниваем со строкой\r\n });\r\n if (match)\r\n valueToAdd = match[optionsValue];\r\n } else { // работаем с простыми типами\r\n valueToAdd = ko.utils.arrayFirst(options,\r\n function (item) {\r\n return item == changedValue; // ==, так как сравниваем со строкой\r\n });\r\n }\r\n // Ноль - валидное значение\r\n if (valueToAdd == null || valueToAdd == undefined)\r\n return;\r\n\r\n if (allBindings.has(\"selectedOptions\")) {\r\n allBindings.get(\"selectedOptions\").push(valueToAdd);\r\n }\r\n } else {\r\n if (allBindings.has(\"selectedOptions\")) {\r\n var selectedOptions = allBindings.get(\"selectedOptions\");\r\n var valueToRemove = ko.utils.arrayFirst(ko.utils.unwrapObservable(selectedOptions),\r\n function (item) {\r\n return item == changedValue; // ==, так как сравниваем со строкой\r\n });\r\n // Ноль - валидное значение\r\n if (valueToRemove != null && valueToRemove != undefined) {\r\n selectedOptions.remove(valueToRemove);\r\n }\r\n }\r\n }\r\n });\r\n if (allBindings.has(\"options\")) {\r\n var options = allBindings.get(\"options\");\r\n if (ko.isObservable(options)) {\r\n options.subscribe(function () {\r\n $(el).trigger('chosen:updated');\r\n });\r\n }\r\n }\r\n\r\n if (allBindings.has(\"selectedOptions\")) {\r\n var selectedOptions = allBindings.get(\"selectedOptions\");\r\n if (ko.isObservable(selectedOptions)) {\r\n selectedOptions.subscribe(function () {\r\n $(el).trigger('chosen:updated');\r\n });\r\n }\r\n }\r\n }\r\n }\r\n });","// http://code.accursoft.com/caret - 1.3.3\n!function(e){e.fn.caret=function(e){var t=this[0],n=\"true\"===t.contentEditable;if(0==arguments.length){if(window.getSelection){if(n){t.focus();var o=window.getSelection().getRangeAt(0),r=o.cloneRange();return r.selectNodeContents(t),r.setEnd(o.endContainer,o.endOffset),r.toString().length}return t.selectionStart}if(document.selection){if(t.focus(),n){var o=document.selection.createRange(),r=document.body.createTextRange();return r.moveToElementText(t),r.setEndPoint(\"EndToEnd\",o),r.text.length}var e=0,c=t.createTextRange(),r=document.selection.createRange().duplicate(),a=r.getBookmark();for(c.moveToBookmark(a);0!==c.moveStart(\"character\",-1);)e++;return e}return t.selectionStart?t.selectionStart:0}if(-1==e&&(e=this[n?\"text\":\"val\"]().length),window.getSelection)n?(t.focus(),window.getSelection().collapse(t.firstChild,e)):t.setSelectionRange(e,e);else if(document.body.createTextRange)if(n){var c=document.body.createTextRange();c.moveToElementText(t),c.moveStart(\"character\",e),c.collapse(!0),c.select()}else{var c=t.createTextRange();c.move(\"character\",e),c.select()}return n||t.focus(),e}}(jQuery);\n","/*\n\tjQuery tagEditor v1.0.20\n Copyright (c) 2014 Simon Steinberger / Pixabay\n GitHub: https://github.com/Pixabay/jQuery-tagEditor\n\tLicense: http://www.opensource.org/licenses/mit-license.php\n*/\n\n(function($){\n // auto grow input (stackoverflow.com/questions/931207)\n $.fn.tagEditorInput=function(){var t=\" \",e=$(this),n=parseInt(e.css(\"fontSize\")),i=$(\"\").css({position:\"absolute\",top:-9999,left:-9999,width:\"auto\",fontSize:e.css(\"fontSize\"),fontFamily:e.css(\"fontFamily\"),fontWeight:e.css(\"fontWeight\"),letterSpacing:e.css(\"letterSpacing\"),whiteSpace:\"nowrap\"}),s=function(){if(t!==(t=e.val())){i.text(t);var s=i.width()+n;20>s&&(s=20),s!=e.width()&&e.width(s)}};return i.insertAfter(e),e.bind(\"keyup keydown focus\",s)};\n\n // plugin with val as parameter for public methods\n $.fn.tagEditor = function(options, val, blur){\n\n // helper\n function escape(tag) {\n return tag.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n }\n\n // build options dictionary with default values\n var blur_result, o = $.extend({}, $.fn.tagEditor.defaults, options), selector = this;\n\n // store regex and default delimiter in options for later use\n o.dregex = new RegExp('['+o.delimiter.replace('-', '\\-')+']', 'g');\n\n // public methods\n if (typeof options == 'string') {\n // depending on selector, response may contain tag lists of multiple editor instances\n var response = [];\n selector.each(function(){\n // the editor is the next sibling to the hidden, original field\n var el = $(this), o = el.data('options'), ed = el.next('.tag-editor');\n if (options == 'getTags')\n response.push({field: el[0], editor: ed, tags: ed.data('tags')});\n else if (options == 'addTag') {\n if (o.maxTags && ed.data('tags').length >= o.maxTags) return false;\n // insert new tag\n $('
    •  '+o.delimiter[0]+'
    • ').appendTo(ed).find('.tag-editor-tag')\n .html('').addClass('active').find('input').val(val).blur();\n if (!blur) ed.click();\n else $('.placeholder', ed).remove();\n } else if (options == 'removeTag') {\n // trigger delete on matching tag, then click editor to create a new tag\n $('.tag-editor-tag', ed).filter(function(){return $(this).text()==val;}).closest('li').find('.tag-editor-delete').click();\n if (!blur) ed.click();\n } else if (options == 'destroy') {\n el.removeClass('tag-editor-hidden-src').removeData('options').off('focus.tag-editor').next('.tag-editor').remove();\n }\n });\n return options == 'getTags' ? response : this;\n }\n\n // delete selected tags on backspace, delete, ctrl+x\n if (window.getSelection) $(document).off('keydown.tag-editor').on('keydown.tag-editor', function(e){\n if (e.which == 8 || e.which == 46 || e.ctrlKey && e.which == 88) {\n try {\n var sel = getSelection(), el = document.activeElement.tagName == 'BODY' ? $(sel.getRangeAt(0).startContainer.parentNode).closest('.tag-editor') : 0;\n } catch(e){ el = 0; }\n if (sel.rangeCount > 0 && el && el.length) {\n var tags = [], splits = sel.toString().split(el.prev().data('options').dregex);\n for (i=0; i').insertAfter(el);\n el.addClass('tag-editor-hidden-src') // hide original field\n .data('options', o) // set data on hidden field\n .on('focus.tag-editor', function(){ ed.click(); }); // simulate tabindex\n\n // add dummy item for min-height on empty editor\n ed.append('
    •  
    • ');\n\n // markup for new tag\n var new_tag = '
    •  '+o.delimiter[0]+'
    • ';\n\n // helper: update global data\n function set_placeholder(){\n if (o.placeholder && !tag_list.length && !$('.deleted, .placeholder, input', ed).length)\n ed.append('
    • '+o.placeholder+'
    • ');\n }\n\n // helper: update global data\n function update_globals(init){\n var old_tags = tag_list.toString();\n tag_list = $('.tag-editor-tag:not(.deleted)', ed).map(function(i, e) {\n var val = $.trim($(this).hasClass('active') ? $(this).find('input').val() : $(e).text());\n if (val) return val;\n }).get();\n ed.data('tags', tag_list);\n el.val(tag_list.join(o.delimiter[0]));\n // change callback except for plugin init\n if (!init) if (old_tags != tag_list.toString()) o.onChange(el, ed, tag_list);\n set_placeholder();\n }\n\n ed.click(function(e, closest_tag){\n var d, dist = 99999, loc;\n\n // do not create tag when user selects tags by text selection\n if (window.getSelection && getSelection() != '') return;\n\n if (o.maxTags && ed.data('tags').length >= o.maxTags) { ed.find('input').blur(); return false; }\n\n blur_result = true\n $('input:focus', ed).blur();\n if (!blur_result) return false;\n blur_result = true\n\n // always remove placeholder on click\n $('.placeholder', ed).remove();\n if (closest_tag && closest_tag.length)\n loc = 'before';\n else {\n // calculate tag closest to click position\n $('.tag-editor-tag', ed).each(function(){\n var tag = $(this), to = tag.offset(), tag_x = to.left, tag_y = to.top;\n if (e.pageY >= tag_y && e.pageY <= tag_y+tag.height()) {\n if (e.pageX < tag_x) loc = 'before', d = tag_x - e.pageX;\n else loc = 'after', d = e.pageX - tag_x - tag.width();\n if (d < dist) dist = d, closest_tag = tag;\n }\n });\n }\n\n if (loc == 'before') {\n $(new_tag).insertBefore(closest_tag.closest('li')).find('.tag-editor-tag').click();\n } else if (loc == 'after')\n $(new_tag).insertAfter(closest_tag.closest('li')).find('.tag-editor-tag').click();\n else // empty editor\n $(new_tag).appendTo(ed).find('.tag-editor-tag').click();\n return false;\n });\n\n ed.on('click', '.tag-editor-delete', function(e){\n // delete icon is hidden when input is visible; place cursor near invisible delete icon on click\n if ($(this).prev().hasClass('active')) { $(this).closest('li').find('input').caret(-1); return false; }\n\n var li = $(this).closest('li'), tag = li.find('.tag-editor-tag');\n if (o.beforeTagDelete(el, ed, tag_list, tag.text()) === false) return false;\n tag.addClass('deleted').animate({width: 0}, o.animateDelete, function(){ li.remove(); set_placeholder(); });\n update_globals();\n return false;\n });\n\n // delete on right mouse click or ctrl+click\n if (o.clickDelete)\n ed.on('mousedown', '.tag-editor-tag', function(e){\n if (e.ctrlKey || e.which > 1) {\n var li = $(this).closest('li'), tag = li.find('.tag-editor-tag');\n if (o.beforeTagDelete(el, ed, tag_list, tag.text()) === false) return false;\n tag.addClass('deleted').animate({width: 0}, o.animateDelete, function(){ li.remove(); set_placeholder(); });\n update_globals();\n return false;\n }\n });\n\n ed.on('click', '.tag-editor-tag', function(e){\n // delete on right click or ctrl+click -> exit\n if (o.clickDelete && (e.ctrlKey || e.which > 1)) return false;\n\n if (!$(this).hasClass('active')) {\n var tag = $(this).text();\n // guess cursor position in text input\n var left_percent = Math.abs(($(this).offset().left - e.pageX)/$(this).width()), caret_pos = parseInt(tag.length*left_percent),\n input = $(this).html('').addClass('active').find('input');\n input.data('old_tag', tag).tagEditorInput().focus().caret(caret_pos);\n if (o.autocomplete) {\n var aco = $.extend({}, o.autocomplete);\n // extend user provided autocomplete select method\n var ac_select = 'select' in aco ? o.autocomplete.select : '';\n aco.select = function(e, ui){ if (ac_select) ac_select(e, ui); setTimeout(function(){\n ed.trigger('click', [$('.active', ed).find('input').closest('li').next('li').find('.tag-editor-tag')]);\n }, 20); };\n input.autocomplete(aco);\n }\n }\n return false;\n });\n\n // helper: split into multiple tags, e.g. after paste\n function split_cleanup(input){\n var li = input.closest('li'), sub_tags = input.val().replace(/ +/, ' ').split(o.dregex),\n old_tag = input.data('old_tag'), old_tags = tag_list.slice(0), exceeded = false, cb_val; // copy tag_list\n for (var i=0; i
       '+o.delimiter[0]+'
      '+escape(tag)+'
      ');\n if (o.maxTags && old_tags.length >= o.maxTags) { exceeded = true; break; }\n }\n input.attr('maxlength', o.maxLength).removeData('old_tag').val('')\n if (exceeded) input.blur(); else input.focus();\n update_globals();\n }\n\n ed.on('blur', 'input', function(e){\n e.stopPropagation();\n var input = $(this), old_tag = input.data('old_tag'), tag = $.trim(input.val().replace(/ +/, ' ').replace(o.dregex, o.delimiter[0]));\n if (!tag) {\n if (old_tag && o.beforeTagDelete(el, ed, tag_list, old_tag) === false) {\n input.val(old_tag).focus();\n blur_result = false;\n update_globals();\n return;\n }\n try { input.closest('li').remove(); } catch(e){}\n if (old_tag) update_globals();\n }\n else if (tag.indexOf(o.delimiter[0])>=0) { split_cleanup(input); return; }\n else if (tag != old_tag) {\n if (o.forceLowercase) tag = tag.toLowerCase();\n cb_val = o.beforeTagSave(el, ed, tag_list, old_tag, tag);\n tag = cb_val || tag;\n if (cb_val === false) {\n if (old_tag) {\n input.val(old_tag).focus();\n blur_result = false;\n update_globals();\n return;\n }\n try { input.closest('li').remove(); } catch(e){}\n if (old_tag) update_globals();\n }\n // remove duplicates\n else if (o.removeDuplicates)\n $('.tag-editor-tag:not(.active)', ed).each(function(){ if ($(this).text() == tag) $(this).closest('li').remove(); });\n }\n input.parent().html(escape(tag)).removeClass('active');\n if (tag != old_tag) update_globals();\n set_placeholder();\n });\n\n var pasted_content;\n ed.on('paste', 'input', function(e){\n $(this).removeAttr('maxlength');\n pasted_content = $(this);\n setTimeout(function(){ split_cleanup(pasted_content); }, 30);\n });\n\n // keypress delimiter\n var inp;\n ed.on('keypress', 'input', function(e){\n if (o.delimiter.indexOf(String.fromCharCode(e.which))>=0) {\n inp = $(this);\n setTimeout(function(){ split_cleanup(inp); }, 20);\n }\n });\n\n ed.on('keydown', 'input', function(e){\n var $t = $(this);\n\n // left/up key + backspace key on empty field\n if ((e.which == 37 || !o.autocomplete && e.which == 38) && !$t.caret() || e.which == 8 && !$t.val()) {\n var prev_tag = $t.closest('li').prev('li').find('.tag-editor-tag');\n if (prev_tag.length) prev_tag.click().find('input').caret(-1);\n else if ($t.val() && !(o.maxTags && ed.data('tags').length >= o.maxTags)) $(new_tag).insertBefore($t.closest('li')).find('.tag-editor-tag').click();\n return false;\n }\n // right/down key\n else if ((e.which == 39 || !o.autocomplete && e.which == 40) && ($t.caret() == $t.val().length)) {\n var next_tag = $t.closest('li').next('li').find('.tag-editor-tag');\n if (next_tag.length) next_tag.click().find('input').caret(0);\n else if ($t.val()) ed.click();\n return false;\n }\n // tab key\n else if (e.which == 9) {\n // shift+tab\n if (e.shiftKey) {\n var prev_tag = $t.closest('li').prev('li').find('.tag-editor-tag');\n if (prev_tag.length) prev_tag.click().find('input').caret(0);\n else if ($t.val() && !(o.maxTags && ed.data('tags').length >= o.maxTags)) $(new_tag).insertBefore($t.closest('li')).find('.tag-editor-tag').click();\n // allow tabbing to previous element\n else {\n el.attr('disabled', 'disabled');\n setTimeout(function(){ el.removeAttr('disabled'); }, 30);\n return;\n }\n return false;\n // tab\n } else {\n var next_tag = $t.closest('li').next('li').find('.tag-editor-tag');\n if (next_tag.length) next_tag.click().find('input').caret(0);\n else if ($t.val()) ed.click();\n else return; // allow tabbing to next element\n return false;\n }\n }\n // del key\n else if (e.which == 46 && (!$.trim($t.val()) || ($t.caret() == $t.val().length))) {\n var next_tag = $t.closest('li').next('li').find('.tag-editor-tag');\n if (next_tag.length) next_tag.click().find('input').caret(0);\n else if ($t.val()) ed.click();\n return false;\n }\n // enter key\n else if (e.which == 13) {\n ed.trigger('click', [$t.closest('li').next('li').find('.tag-editor-tag')]);\n\n // trigger blur if maxTags limit is reached\n if (o.maxTags && ed.data('tags').length >= o.maxTags) ed.find('input').blur();\n\n return false;\n }\n // pos1\n else if (e.which == 36 && !$t.caret()) ed.find('.tag-editor-tag').first().click();\n // end\n else if (e.which == 35 && $t.caret() == $t.val().length) ed.find('.tag-editor-tag').last().click();\n // esc\n else if (e.which == 27) {\n $t.val($t.data('old_tag') ? $t.data('old_tag') : '').blur();\n return false;\n }\n });\n\n // create initial tags\n var tags = o.initialTags.length ? o.initialTags : el.val().split(o.dregex);\n for (var i=0; i= o.maxTags) break;\n var tag = $.trim(tags[i].replace(/ +/, ' '));\n if (tag) {\n if (o.forceLowercase) tag = tag.toLowerCase();\n tag_list.push(tag);\n ed.append('
    •  '+o.delimiter[0]+'
      '+escape(tag)+'
    • ');\n }\n }\n update_globals(true); // true -> no onChange callback\n\n // init sortable\n if (o.sortable && $.fn.sortable) ed.sortable({\n distance: 5, cancel: '.tag-editor-spacer, input', helper: 'clone',\n update: function(){ update_globals(); }\n });\n });\n };\n\n $.fn.tagEditor.defaults = {\n initialTags: [],\n maxTags: 0,\n maxLength: 50,\n delimiter: ',;',\n placeholder: '',\n forceLowercase: true,\n removeDuplicates: true,\n clickDelete: false,\n animateDelete: 175,\n sortable: true, // jQuery UI sortable\n autocomplete: null, // options dict for jQuery UI autocomplete\n\n // callbacks\n onChange: function(){},\n beforeTagSave: function(){},\n beforeTagDelete: function(){}\n };\n}(jQuery));\n","define([\"jquery\", \"knockout\", \"tag-editor/jquery.tag-editor\", \"styles/custom/tag-editor-custom.css!\"],\r\n function($, ko) {\r\n ko.bindingHandlers.multiInput = {\r\n init: function (el, valueAccessor, allBindings, viewModel) {\r\n var settings = ko.utils.unwrapObservable(allBindings().multiInput) || {};\r\n var values = settings.values;\r\n $(el).tagEditor({\r\n initialTags: ko.unwrap(values),\r\n forceLowercase: false,\r\n onChange: function (field, editor, tags) {\r\n if (ko.isObservable(values)) {\r\n values(tags);\r\n }\r\n }\r\n });\r\n if (ko.isObservable(values)) {\r\n values.subscribe(function (changes) { \r\n ko.utils.arrayForEach(changes || [], function (change) {\r\n if (change.status === \"added\") {\r\n $(el).tagEditor(\"addTag\", change.value, true);\r\n }\r\n if (change.status === 'deleted') {\r\n $(el).tagEditor(\"removeTag\", change.value, true);\r\n }\r\n });\r\n },\r\n null,\r\n \"arrayChange\");\r\n }\r\n }\r\n }\r\n });","/* Tooltipster v3.3.0 */;(function(e,t,n){function s(t,n){this.bodyOverflowX;this.callbacks={hide:[],show:[]};this.checkInterval=null;this.Content;this.$el=e(t);this.$elProxy;this.elProxyPosition;this.enabled=true;this.options=e.extend({},i,n);this.mouseIsOverProxy=false;this.namespace=\"tooltipster-\"+Math.round(Math.random()*1e5);this.Status=\"hidden\";this.timerHide=null;this.timerShow=null;this.$tooltip;this.options.iconTheme=this.options.iconTheme.replace(\".\",\"\");this.options.theme=this.options.theme.replace(\".\",\"\");this._init()}function o(t,n){var r=true;e.each(t,function(e,i){if(typeof n[e]===\"undefined\"||t[e]!==n[e]){r=false;return false}});return r}function f(){return!a&&u}function l(){var e=n.body||n.documentElement,t=e.style,r=\"transition\";if(typeof t[r]==\"string\"){return true}v=[\"Moz\",\"Webkit\",\"Khtml\",\"O\",\"ms\"],r=r.charAt(0).toUpperCase()+r.substr(1);for(var i=0;i
      ');t.$elProxy.text(t.options.icon)}else{if(t.options.iconCloning)t.$elProxy=t.options.icon.clone(true);else t.$elProxy=t.options.icon}t.$elProxy.insertAfter(t.$el)}else{t.$elProxy=t.$el}if(t.options.trigger==\"hover\"){t.$elProxy.on(\"mouseenter.\"+t.namespace,function(){if(!f()||t.options.touchDevices){t.mouseIsOverProxy=true;t._show()}}).on(\"mouseleave.\"+t.namespace,function(){if(!f()||t.options.touchDevices){t.mouseIsOverProxy=false}});if(u&&t.options.touchDevices){t.$elProxy.on(\"touchstart.\"+t.namespace,function(){t._showNow()})}}else if(t.options.trigger==\"click\"){t.$elProxy.on(\"click.\"+t.namespace,function(){if(!f()||t.options.touchDevices){t._show()}})}}},_show:function(){var e=this;if(e.Status!=\"shown\"&&e.Status!=\"appearing\"){if(e.options.delay){e.timerShow=setTimeout(function(){if(e.options.trigger==\"click\"||e.options.trigger==\"hover\"&&e.mouseIsOverProxy){e._showNow()}},e.options.delay)}else e._showNow()}},_showNow:function(n){var r=this;r.options.functionBefore.call(r.$el,r.$el,function(){if(r.enabled&&r.Content!==null){if(n)r.callbacks.show.push(n);r.callbacks.hide=[];clearTimeout(r.timerShow);r.timerShow=null;clearTimeout(r.timerHide);r.timerHide=null;if(r.options.onlyOne){e(\".tooltipstered\").not(r.$el).each(function(t,n){var r=e(n),i=r.data(\"tooltipster-ns\");e.each(i,function(e,t){var n=r.data(t),i=n.status(),s=n.option(\"autoClose\");if(i!==\"hidden\"&&i!==\"disappearing\"&&s){n.hide()}})})}var i=function(){r.Status=\"shown\";e.each(r.callbacks.show,function(e,t){t.call(r.$el)});r.callbacks.show=[]};if(r.Status!==\"hidden\"){var s=0;if(r.Status===\"disappearing\"){r.Status=\"appearing\";if(l()){r.$tooltip.clearQueue().removeClass(\"tooltipster-dying\").addClass(\"tooltipster-\"+r.options.animation+\"-show\");if(r.options.speed>0)r.$tooltip.delay(r.options.speed);r.$tooltip.queue(i)}else{r.$tooltip.stop().fadeIn(i)}}else if(r.Status===\"shown\"){i()}}else{r.Status=\"appearing\";var s=r.options.speed;r.bodyOverflowX=e(\"body\").css(\"overflow-x\");e(\"body\").css(\"overflow-x\",\"hidden\");var o=\"tooltipster-\"+r.options.animation,a=\"-webkit-transition-duration: \"+r.options.speed+\"ms; -webkit-animation-duration: \"+r.options.speed+\"ms; -moz-transition-duration: \"+r.options.speed+\"ms; -moz-animation-duration: \"+r.options.speed+\"ms; -o-transition-duration: \"+r.options.speed+\"ms; -o-animation-duration: \"+r.options.speed+\"ms; -ms-transition-duration: \"+r.options.speed+\"ms; -ms-animation-duration: \"+r.options.speed+\"ms; transition-duration: \"+r.options.speed+\"ms; animation-duration: \"+r.options.speed+\"ms;\",f=r.options.minWidth?\"min-width:\"+Math.round(r.options.minWidth)+\"px;\":\"\",c=r.options.maxWidth?\"max-width:\"+Math.round(r.options.maxWidth)+\"px;\":\"\",h=r.options.interactive?\"pointer-events: auto;\":\"\";r.$tooltip=e('
      ');if(l())r.$tooltip.addClass(o);r._content_insert();r.$tooltip.appendTo(\"body\");r.reposition();r.options.functionReady.call(r.$el,r.$el,r.$tooltip);if(l()){r.$tooltip.addClass(o+\"-show\");if(r.options.speed>0)r.$tooltip.delay(r.options.speed);r.$tooltip.queue(i)}else{r.$tooltip.css(\"display\",\"none\").fadeIn(r.options.speed,i)}r._interval_set();e(t).on(\"scroll.\"+r.namespace+\" resize.\"+r.namespace,function(){r.reposition()});if(r.options.autoClose){e(\"body\").off(\".\"+r.namespace);if(r.options.trigger==\"hover\"){if(u){setTimeout(function(){e(\"body\").on(\"touchstart.\"+r.namespace,function(){r.hide()})},0)}if(r.options.interactive){if(u){r.$tooltip.on(\"touchstart.\"+r.namespace,function(e){e.stopPropagation()})}var p=null;r.$elProxy.add(r.$tooltip).on(\"mouseleave.\"+r.namespace+\"-autoClose\",function(){clearTimeout(p);p=setTimeout(function(){r.hide()},r.options.interactiveTolerance)}).on(\"mouseenter.\"+r.namespace+\"-autoClose\",function(){clearTimeout(p)})}else{r.$elProxy.on(\"mouseleave.\"+r.namespace+\"-autoClose\",function(){r.hide()})}if(r.options.hideOnClick){r.$elProxy.on(\"click.\"+r.namespace+\"-autoClose\",function(){r.hide()})}}else if(r.options.trigger==\"click\"){setTimeout(function(){e(\"body\").on(\"click.\"+r.namespace+\" touchstart.\"+r.namespace,function(){r.hide()})},0);if(r.options.interactive){r.$tooltip.on(\"click.\"+r.namespace+\" touchstart.\"+r.namespace,function(e){e.stopPropagation()})}}}}if(r.options.timer>0){r.timerHide=setTimeout(function(){r.timerHide=null;r.hide()},r.options.timer+s)}}})},_interval_set:function(){var t=this;t.checkInterval=setInterval(function(){if(e(\"body\").find(t.$el).length===0||e(\"body\").find(t.$elProxy).length===0||t.Status==\"hidden\"||e(\"body\").find(t.$tooltip).length===0){if(t.Status==\"shown\"||t.Status==\"appearing\")t.hide();t._interval_cancel()}else{if(t.options.positionTracker){var n=t._repositionInfo(t.$elProxy),r=false;if(o(n.dimension,t.elProxyPosition.dimension)){if(t.$elProxy.css(\"position\")===\"fixed\"){if(o(n.position,t.elProxyPosition.position))r=true}else{if(o(n.offset,t.elProxyPosition.offset))r=true}}if(!r){t.reposition();t.options.positionTrackerCallback.call(t,t.$el)}}}},200)},_interval_cancel:function(){clearInterval(this.checkInterval);this.checkInterval=null},_content_set:function(e){if(typeof e===\"object\"&&e!==null&&this.options.contentCloning){e=e.clone(true)}this.Content=e},_content_insert:function(){var e=this,t=this.$tooltip.find(\".tooltipster-content\");if(typeof e.Content===\"string\"&&!e.options.contentAsHTML){t.text(e.Content)}else{t.empty().append(e.Content)}},_update:function(e){var t=this;t._content_set(e);if(t.Content!==null){if(t.Status!==\"hidden\"){t._content_insert();t.reposition();if(t.options.updateAnimation){if(l()){t.$tooltip.css({width:\"\",\"-webkit-transition\":\"all \"+t.options.speed+\"ms, width 0ms, height 0ms, left 0ms, top 0ms\",\"-moz-transition\":\"all \"+t.options.speed+\"ms, width 0ms, height 0ms, left 0ms, top 0ms\",\"-o-transition\":\"all \"+t.options.speed+\"ms, width 0ms, height 0ms, left 0ms, top 0ms\",\"-ms-transition\":\"all \"+t.options.speed+\"ms, width 0ms, height 0ms, left 0ms, top 0ms\",transition:\"all \"+t.options.speed+\"ms, width 0ms, height 0ms, left 0ms, top 0ms\"}).addClass(\"tooltipster-content-changing\");setTimeout(function(){if(t.Status!=\"hidden\"){t.$tooltip.removeClass(\"tooltipster-content-changing\");setTimeout(function(){if(t.Status!==\"hidden\"){t.$tooltip.css({\"-webkit-transition\":t.options.speed+\"ms\",\"-moz-transition\":t.options.speed+\"ms\",\"-o-transition\":t.options.speed+\"ms\",\"-ms-transition\":t.options.speed+\"ms\",transition:t.options.speed+\"ms\"})}},t.options.speed)}},t.options.speed)}else{t.$tooltip.fadeTo(t.options.speed,.5,function(){if(t.Status!=\"hidden\"){t.$tooltip.fadeTo(t.options.speed,1)}})}}}}else{t.hide()}},_repositionInfo:function(e){return{dimension:{height:e.outerHeight(false),width:e.outerWidth(false)},offset:e.offset(),position:{left:parseInt(e.css(\"left\")),top:parseInt(e.css(\"top\"))}}},hide:function(n){var r=this;if(n)r.callbacks.hide.push(n);r.callbacks.show=[];clearTimeout(r.timerShow);r.timerShow=null;clearTimeout(r.timerHide);r.timerHide=null;var i=function(){e.each(r.callbacks.hide,function(e,t){t.call(r.$el)});r.callbacks.hide=[]};if(r.Status==\"shown\"||r.Status==\"appearing\"){r.Status=\"disappearing\";var s=function(){r.Status=\"hidden\";if(typeof r.Content==\"object\"&&r.Content!==null){r.Content.detach()}r.$tooltip.remove();r.$tooltip=null;e(t).off(\".\"+r.namespace);e(\"body\").off(\".\"+r.namespace).css(\"overflow-x\",r.bodyOverflowX);e(\"body\").off(\".\"+r.namespace);r.$elProxy.off(\".\"+r.namespace+\"-autoClose\");r.options.functionAfter.call(r.$el,r.$el);i()};if(l()){r.$tooltip.clearQueue().removeClass(\"tooltipster-\"+r.options.animation+\"-show\").addClass(\"tooltipster-dying\");if(r.options.speed>0)r.$tooltip.delay(r.options.speed);r.$tooltip.queue(s)}else{r.$tooltip.stop().fadeOut(r.options.speed,s)}}else if(r.Status==\"hidden\"){i()}return r},show:function(e){this._showNow(e);return this},update:function(e){return this.content(e)},content:function(e){if(typeof e===\"undefined\"){return this.Content}else{this._update(e);return this}},reposition:function(){var n=this;if(e(\"body\").find(n.$tooltip).length!==0){n.$tooltip.css(\"width\",\"\");n.elProxyPosition=n._repositionInfo(n.$elProxy);var r=null,i=e(t).width(),s=n.elProxyPosition,o=n.$tooltip.outerWidth(false),u=n.$tooltip.innerWidth()+1,a=n.$tooltip.outerHeight(false);if(n.$elProxy.is(\"area\")){var f=n.$elProxy.attr(\"shape\"),l=n.$elProxy.parent().attr(\"name\"),c=e('img[usemap=\"#'+l+'\"]'),h=c.offset().left,p=c.offset().top,d=n.$elProxy.attr(\"coords\")!==undefined?n.$elProxy.attr(\"coords\").split(\",\"):undefined;if(f==\"circle\"){var v=parseInt(d[0]),m=parseInt(d[1]),g=parseInt(d[2]);s.dimension.height=g*2;s.dimension.width=g*2;s.offset.top=p+m-g;s.offset.left=h+v-g}else if(f==\"rect\"){var v=parseInt(d[0]),m=parseInt(d[1]),y=parseInt(d[2]),b=parseInt(d[3]);s.dimension.height=b-m;s.dimension.width=y-v;s.offset.top=p+m;s.offset.left=h+v}else if(f==\"poly\"){var w=[],E=[],S=0,x=0,T=0,N=0,C=\"even\";for(var k=0;kT){T=L;if(k===0){S=T}}if(LN){N=L;if(k==1){x=N}}if(Li){r=A-(i+n-o);A=i+n-o}}function B(n,r){if(s.offset.top-e(t).scrollTop()-a-_-12<0&&r.indexOf(\"top\")>-1){P=n}if(s.offset.top+s.dimension.height+a+12+_>e(t).scrollTop()+e(t).height()&&r.indexOf(\"bottom\")>-1){P=n;M=s.offset.top-a-_-12}}if(P==\"top\"){var j=s.offset.left+o-(s.offset.left+s.dimension.width);A=s.offset.left+D-j/2;M=s.offset.top-a-_-12;H();B(\"bottom\",\"top\")}if(P==\"top-left\"){A=s.offset.left+D;M=s.offset.top-a-_-12;H();B(\"bottom-left\",\"top-left\")}if(P==\"top-right\"){A=s.offset.left+s.dimension.width+D-o;M=s.offset.top-a-_-12;H();B(\"bottom-right\",\"top-right\")}if(P==\"bottom\"){var j=s.offset.left+o-(s.offset.left+s.dimension.width);A=s.offset.left-j/2+D;M=s.offset.top+s.dimension.height+_+12;H();B(\"top\",\"bottom\")}if(P==\"bottom-left\"){A=s.offset.left+D;M=s.offset.top+s.dimension.height+_+12;H();B(\"top-left\",\"bottom-left\")}if(P==\"bottom-right\"){A=s.offset.left+s.dimension.width+D-o;M=s.offset.top+s.dimension.height+_+12;H();B(\"top-right\",\"bottom-right\")}if(P==\"left\"){A=s.offset.left-D-o-12;O=s.offset.left+D+s.dimension.width+12;var F=s.offset.top+a-(s.offset.top+s.dimension.height);M=s.offset.top-F/2-_;if(A<0&&O+o>i){var I=parseFloat(n.$tooltip.css(\"border-width\"))*2,q=o+A-I;n.$tooltip.css(\"width\",q+\"px\");a=n.$tooltip.outerHeight(false);A=s.offset.left-D-q-12-I;F=s.offset.top+a-(s.offset.top+s.dimension.height);M=s.offset.top-F/2-_}else if(A<0){A=s.offset.left+D+s.dimension.width+12;r=\"left\"}}if(P==\"right\"){A=s.offset.left+D+s.dimension.width+12;O=s.offset.left-D-o-12;var F=s.offset.top+a-(s.offset.top+s.dimension.height);M=s.offset.top-F/2-_;if(A+o>i&&O<0){var I=parseFloat(n.$tooltip.css(\"border-width\"))*2,q=i-A-I;n.$tooltip.css(\"width\",q+\"px\");a=n.$tooltip.outerHeight(false);F=s.offset.top+a-(s.offset.top+s.dimension.height);M=s.offset.top-F/2-_}else if(A+o>i){A=s.offset.left-D-o-12;r=\"right\"}}if(n.options.arrow){var R=\"tooltipster-arrow-\"+P;if(n.options.arrowColor.length<1){var U=n.$tooltip.css(\"background-color\")}else{var U=n.options.arrowColor}if(!r){r=\"\"}else if(r==\"left\"){R=\"tooltipster-arrow-right\";r=\"\"}else if(r==\"right\"){R=\"tooltipster-arrow-left\";r=\"\"}else{r=\"left:\"+Math.round(r)+\"px;\"}if(P==\"top\"||P==\"top-left\"||P==\"top-right\"){var z=parseFloat(n.$tooltip.css(\"border-bottom-width\")),W=n.$tooltip.css(\"border-bottom-color\")}else if(P==\"bottom\"||P==\"bottom-left\"||P==\"bottom-right\"){var z=parseFloat(n.$tooltip.css(\"border-top-width\")),W=n.$tooltip.css(\"border-top-color\")}else if(P==\"left\"){var z=parseFloat(n.$tooltip.css(\"border-right-width\")),W=n.$tooltip.css(\"border-right-color\")}else if(P==\"right\"){var z=parseFloat(n.$tooltip.css(\"border-left-width\")),W=n.$tooltip.css(\"border-left-color\")}else{var z=parseFloat(n.$tooltip.css(\"border-bottom-width\")),W=n.$tooltip.css(\"border-bottom-color\")}if(z>1){z++}var X=\"\";if(z!==0){var V=\"\",J=\"border-color: \"+W+\";\";if(R.indexOf(\"bottom\")!==-1){V=\"margin-top: -\"+Math.round(z)+\"px;\"}else if(R.indexOf(\"top\")!==-1){V=\"margin-bottom: -\"+Math.round(z)+\"px;\"}else if(R.indexOf(\"left\")!==-1){V=\"margin-right: -\"+Math.round(z)+\"px;\"}else if(R.indexOf(\"right\")!==-1){V=\"margin-left: -\"+Math.round(z)+\"px;\"}X=''}n.$tooltip.find(\".tooltipster-arrow\").remove();var K='
      '+X+'
      ';n.$tooltip.append(K)}n.$tooltip.css({top:Math.round(M)+\"px\",left:Math.round(A)+\"px\"})}return n},enable:function(){this.enabled=true;return this},disable:function(){this.hide();this.enabled=false;return this},destroy:function(){var t=this;t.hide();if(t.$el[0]!==t.$elProxy[0]){t.$elProxy.remove()}t.$el.removeData(t.namespace).off(\".\"+t.namespace);var n=t.$el.data(\"tooltipster-ns\");if(n.length===1){var r=null;if(t.options.restoration===\"previous\"){r=t.$el.data(\"tooltipster-initialTitle\")}else if(t.options.restoration===\"current\"){r=typeof t.Content===\"string\"?t.Content:e(\"
      \").append(t.Content).html()}if(r){t.$el.attr(\"title\",r)}t.$el.removeClass(\"tooltipstered\").removeData(\"tooltipster-ns\").removeData(\"tooltipster-initialTitle\")}else{n=e.grep(n,function(e,n){return e!==t.namespace});t.$el.data(\"tooltipster-ns\",n)}return t},elementIcon:function(){return this.$el[0]!==this.$elProxy[0]?this.$elProxy[0]:undefined},elementTooltip:function(){return this.$tooltip?this.$tooltip[0]:undefined},option:function(e,t){if(typeof t==\"undefined\")return this.options[e];else{this.options[e]=t;return this}},status:function(){return this.Status}};e.fn[r]=function(){var t=arguments;if(this.length===0){if(typeof t[0]===\"string\"){var n=true;switch(t[0]){case\"setDefaults\":e.extend(i,t[1]);break;default:n=false;break}if(n)return true;else return this}else{return this}}else{if(typeof t[0]===\"string\"){var r=\"#*$~&\";this.each(function(){var n=e(this).data(\"tooltipster-ns\"),i=n?e(this).data(n[0]):null;if(i){if(typeof i[t[0]]===\"function\"){var s=i[t[0]](t[1],t[2])}else{throw new Error('Unknown method .tooltipster(\"'+t[0]+'\")')}if(s!==i){r=s;return false}}else{throw new Error(\"You called Tooltipster's \\\"\"+t[0]+'\" method on an uninitialized element')}});return r!==\"#*$~&\"?r:this}else{var o=[],u=t[0]&&typeof t[0].multiple!==\"undefined\",a=u&&t[0].multiple||!u&&i.multiple,f=t[0]&&typeof t[0].debug!==\"undefined\",l=f&&t[0].debug||!f&&i.debug;this.each(function(){var n=false,r=e(this).data(\"tooltipster-ns\"),i=null;if(!r){n=true}else if(a){n=true}else if(l){console.log('Tooltipster: one or more tooltips are already attached to this element: ignoring. Use the \"multiple\" option to attach more tooltips.')}if(n){i=new s(this,t[0]);if(!r)r=[];r.push(i.namespace);e(this).data(\"tooltipster-ns\",r);e(this).data(i.namespace,i)}o.push(i)});if(a)return o;else return this}}};var u=!!(\"ontouchstart\"in t);var a=false;e(\"body\").one(\"mousemove\",function(){a=true})})(jQuery,window,document);","module.exports = require(\"github:iamceege/tooltipster@3.3.0/js/jquery.tooltipster.min.js\");","define([\"jquery\", \"knockout\", \"jquery-tooltipster\", \"styles/custom/tooltipster-custom.css!\"],\r\n function($, ko) {\r\n ko.bindingHandlers.tooltipster = {\r\n init: function(element, valueAccessor) {\r\n var position = \"top-left\";\r\n var delay = 100;\r\n var trigger = \"hover\";\r\n var value = ko.unwrap(valueAccessor());\r\n if (value) {\r\n position = ko.unwrap(value\r\n .position) ||\r\n position; //right, left, top, top-right, top-left, bottom, bottom-right, bottom-left\r\n delay = ko.unwrap(value.delay) || delay;\r\n trigger = ko.unwrap(value.trigger) || trigger; //hover, click\r\n }\r\n $(element)\r\n .tooltipster({\r\n delay: delay,\r\n position: position,\r\n trigger: trigger\r\n });\r\n },\r\n after: [\"attr\"]\r\n };\r\n });","define([\"jquery\", \"knockout\"],\r\n function($, ko) {\r\n ko.bindingHandlers.onEnter = {\r\n init: function(element, valueAccessor, allBindings, viewModel) {\r\n var callback = valueAccessor();\r\n $(element)\r\n .keydown(function(event) {\r\n var keyCode = (event.which ? event.which : event.keyCode);\r\n if (keyCode === 13 && !event.shiftKey) {\r\n callback.call(viewModel, viewModel);\r\n return false;\r\n }\r\n return true;\r\n });\r\n }\r\n };\r\n });","define([\"jquery\", \"knockout\"],\r\n function($, ko) {\r\n ko.bindingHandlers.loading = {\r\n update: function(element, valueAccessor) {\r\n var isLoading = ko.unwrap(valueAccessor());\r\n var elem = $(element);\r\n if (isLoading) {\r\n elem.data(\"loadTimeoutId\",\r\n setTimeout(function() {\r\n elem.scrollTop(0);\r\n elem.addClass(\"loading\");\r\n },\r\n 200));\r\n } else {\r\n var timeoutId = elem.data(\"loadTimeoutId\");\r\n if (timeoutId) {\r\n clearTimeout(timeoutId);\r\n elem.removeData(\"loadTimeoutId\");\r\n }\r\n elem.removeClass(\"loading\");\r\n }\r\n\r\n }\r\n };\r\n });","define([\"jquery\", \"knockout\", \"moment\"],\r\n function ($, ko) {\r\n ko.bindingHandlers.numberFormat = {\r\n update: function (element, valueAccessor) {\r\n var val = ko.unwrap(valueAccessor());\r\n var $element = $(element);\r\n if (val || val == 0) {\r\n var resultString = val.toString().replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, \"$1 \");\r\n $element.text(resultString);\r\n } else {\r\n $element.text(\"\");\r\n }\r\n }\r\n };\r\n });","define([\"knockout\"],\r\n function(ko) {\r\n ko.bindingHandlers.hover = {\r\n init: function(element, valueAccessor) {\r\n var value = valueAccessor();\r\n ko.applyBindingsToNode(element,\r\n {\r\n event: {\r\n mouseenter: function() { value(true) },\r\n mouseleave: function() { value(false) }\r\n }\r\n });\r\n }\r\n }\r\n });","define(\r\n [\r\n \"scripts/utils/bindings/multiselect\",\r\n \"scripts/utils/bindings/multiInput\",\r\n \"scripts/utils/bindings/tooltipster\",\r\n \"scripts/utils/bindings/onEnter\",\r\n \"scripts/utils/bindings/modal\",\r\n \"scripts/utils/bindings/loading\",\r\n \"scripts/utils/bindings/numberFormat\",\r\n \"scripts/utils/bindings/hover\"\r\n ],\r\n function() {});","define(\r\n [\r\n \"scripts/main\",\r\n \"knockout\",\r\n \"jquery\",\r\n \"scripts/shared/document\",\r\n \"scripts/shared/search\",\r\n \"scripts/search/document-item\",\r\n \"scripts/search/form\",\r\n \"scripts/search/query-save\",\r\n \"scripts/search/topic-info\",\r\n \"scripts/search/index-bindings\"\r\n ],\r\n function (main, ko, $, Document, Search, DocumentSearchItem, SearchForm, QuerySave, TopicInfo) {\r\n var SearchIndexViewModel = function(data) {\r\n var self = this;\r\n data = data || {};\r\n var model = data.model || {};\r\n var options = data.options || {};\r\n\r\n var filter = new SearchForm(model.Filter, options);\r\n var searchOptions = {\r\n mappingFunction: function(value) {\r\n return new DocumentSearchItem(value);\r\n },\r\n sortingOptions: options.sortingOptions,\r\n count: model.DocumentCount || 0,\r\n pageSize: options.initialPageSize,\r\n searchUrl: options.searchUrl,\r\n beforeLoadCallback: function(items, result) {\r\n self.Topics($.map(result.Topics || [],\r\n function(value) {\r\n return new TopicInfo(value);\r\n })\r\n );\r\n }\r\n };\r\n self.SearchViewModel = new Search(filter,\r\n model.Documents || [],\r\n searchOptions);\r\n self.Topics = ko.observableArray($.map(model.Topics || [],\r\n function(value) {\r\n return new TopicInfo(value);\r\n }));\r\n // Для \"Найти похожее\"\r\n self.Document = ko.observable();\r\n if (model.Document) {\r\n self.Document(new Document(model.Document));\r\n } \r\n\r\n self.CanSaveQuery = ko.pureComputed(function () {\r\n return !self.SearchViewModel.Filter.IsEmpty();\r\n });\r\n self.SaveQueryPopup = new QuerySave(options.saveQueryLocalization);\r\n }\r\n SearchIndexViewModel.prototype.search = function() {\r\n var self = this;\r\n self.SearchViewModel.search();\r\n } \r\n SearchIndexViewModel.prototype.saveQuery = function() {\r\n var self = this;\r\n if (self.SearchViewModel.Filter.IsEmpty()) {\r\n return;\r\n }\r\n self.SaveQueryPopup.setQuery(\r\n self.SearchViewModel.Filter.getFilterModel(),\r\n self.SearchViewModel.Sorting.getSortingModel(),\r\n self.Document());\r\n self.SaveQueryPopup.IsPopupOpen(true);\r\n }\r\n SearchIndexViewModel.prototype.getTopicTerms = function(order) {\r\n var self = this;\r\n var match = ko.utils.arrayFirst(self.Topics(),\r\n function(item) {\r\n return item.Order === order;\r\n });\r\n if (!match)\r\n return \"\";\r\n return match.TermsString();\r\n }\r\n return SearchIndexViewModel;\r\n }\r\n);"]}