');\r\n $errors.each(function () {\r\n var $error = $(this);\r\n $errorRollUp.append($('
').append($error.html()));\r\n new FieldValidationHandler().handle($error);\r\n });\r\n\r\n var $targetInput = $nameField.find('.name-full-input');\r\n var targetId = $errors.first().data('for') + '-name-full-input';\r\n new ErrorPopover().append($targetInput, targetId, $errorRollUp);\r\n $nameField.data('error-handled', true);\r\n\r\n return true;\r\n }\r\n}\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\n\r\nvar Legacy = Legacy || {};\r\n\r\ninterface IPersonName {\r\n prefix: string | null,\r\n first: string | null,\r\n middle: string | null,\r\n last: string | null,\r\n suffix: string | null,\r\n};\r\n\r\nexport class PersonName implements IPersonName {\r\n public prefix: string | null;\r\n public first: string | null;\r\n public middle: string | null;\r\n public last: string | null;\r\n public suffix: string | null;\r\n\r\n public constructor(prefix: string, first: string, middle: string, last: string, suffix: string) {\r\n this.prefix = prefix;\r\n this.first = first;\r\n this.middle = middle;\r\n this.last = last;\r\n this.suffix = suffix;\r\n }\r\n\r\n public static parse(input: string): PersonName {\r\n if (!input || input.isNullOrWhitespace())\r\n return new PersonName(null, null, null, null, null);\r\n\r\n let prefixes = [\"Dr.\", \"Miss\", \"Mr.\", \"Mrs.\", \"Ms.\", \"Prof.\"];\r\n let suffixes = [\"I\", \"II\", \"III\", \"Jr.\", \"Sr.\", \"IV\", \"V\", \"VI\", \"VII\", \"VIII\", \"IX\", \"Esq.\"];\r\n let lastNamePrefixes = [\"Al\", \"Au\", \"De\", \"Di\", \"Du\", \"El\", \"La\", \"Le\", \"St\", \"Van\", \"Von\"];\r\n\r\n let values: IPersonName = {\r\n prefix: null,\r\n first: null,\r\n middle: null,\r\n last: null,\r\n suffix: null,\r\n };\r\n\r\n if (isFormalForm(input)) {\r\n parseFormal(input, values);\r\n } else {\r\n parseInformal(input, values);\r\n }\r\n\r\n // capitalize all parts\r\n if (values.prefix)\r\n values.prefix = values.prefix.capitalize();\r\n if (values.first)\r\n values.first = values.first.capitalize();\r\n if (values.middle)\r\n values.middle = values.middle.capitalize();\r\n if (values.last)\r\n values.last = values.last.capitalize();\r\n if (values.suffix)\r\n values.suffix = values.suffix.capitalize();\r\n\r\n return new PersonName(\r\n values.prefix,\r\n values.first,\r\n values.middle,\r\n values.last,\r\n values.suffix\r\n );\r\n\r\n function parseFormal(name: string, result: IPersonName) {\r\n let commaIndex = name.indexOf(',');\r\n let beforeComma = name.substring(0, commaIndex);\r\n let afterComma = name.substring(commaIndex + 1);\r\n\r\n result.last = beforeComma;\r\n\r\n if (!afterComma || afterComma?.isNullOrWhitespace())\r\n return; \r\n\r\n let words = afterComma.split(/\\s*,?\\s+|,/).filter(x => x && !x.isNullOrWhitespace());\r\n\r\n extractPrefix(words, result);\r\n extractSuffix(words, result);\r\n extractFirstNameSingleCharacter();\r\n extractMiddleInitial();\r\n\r\n result.first = result.first || words.join(\" \");\r\n\r\n function extractFirstNameSingleCharacter(): void {\r\n if (words.length == 0)\r\n return;\r\n\r\n var testWord = words[0];\r\n if (testWord.length == 1) {\r\n result.first = testWord;\r\n words.shift();\r\n }\r\n }\r\n\r\n function extractMiddleInitial(): void {\r\n if (words.length == 0)\r\n return;\r\n\r\n if (words.length == 2 && isLastNamePrefix(words[0]))\r\n return;\r\n\r\n var testWord = last(words);\r\n if (testWord.length == 1 || testWord.length == 2 && testWord[1] == '.') {\r\n result.middle = trimDot(testWord);\r\n words.pop();\r\n }\r\n }\r\n }\r\n\r\n function parseInformal(name: string, result: IPersonName) {\r\n let words = name.trim().split(/\\s*,?\\s+|,/).filter(x => x && !x.isNullOrWhitespace());\r\n\r\n extractPrefix(words, result);\r\n extractSuffix(words, result);\r\n\r\n if (words.length == 0)\r\n return;\r\n else if (words.length == 1) {\r\n result.last = words[0];\r\n return;\r\n }\r\n\r\n if (words.length == 2) {\r\n if (isLastNamePrefix(words[0])) {\r\n result.last = words.join(\" \");\r\n return;\r\n }\r\n\r\n result.first = words[0];\r\n result.last = words[1];\r\n\r\n return;\r\n }\r\n\r\n if (words.length == 3) {\r\n\r\n if (isInitial(words[1])) {\r\n result.first = words[0];\r\n result.middle = trimDot(words[1]);\r\n result.last = words[2];\r\n return;\r\n }\r\n\r\n if (isLastNamePrefix(words[1])) {\r\n result.first = words[0];\r\n result.last = `${words[1]} ${words[2]}`;\r\n return;\r\n }\r\n\r\n result.first = `${words[0]} ${words[1]}`;\r\n result.last = words[2];\r\n\r\n return;\r\n }\r\n\r\n let isFirst = true;\r\n let foundLastToken = false;\r\n let firstWords: string[] = [];\r\n let lastWords: string[] = [];\r\n\r\n while (words.length > 0) {\r\n let testWord = words[0];\r\n\r\n if (!isFirst && isInitial(testWord))\r\n result.middle = testWord[0];\r\n else if (isFirst) {\r\n firstWords.push(testWord);\r\n isFirst = false;\r\n }\r\n else if (!foundLastToken && isLastNamePrefix(testWord)) {\r\n firstWords.push(...lastWords);\r\n lastWords = [testWord];\r\n foundLastToken = true;\r\n }\r\n else\r\n lastWords.push(testWord);\r\n\r\n words.shift();\r\n }\r\n\r\n result.first = firstWords.join(\" \");\r\n result.last = lastWords.join(\" \");\r\n }\r\n\r\n function isInitial(word: string): boolean {\r\n return word.length == 1 || (word.length == 2 && word[1] == '.');\r\n }\r\n\r\n function isLastNamePrefix(word: string): boolean {\r\n return lastNamePrefixes.some(x => isEqualIgnoreCase(x, word));\r\n }\r\n\r\n function extractPrefix(words: string[], result: IPersonName) {\r\n if (prefixes == null || words.length == 0)\r\n return;\r\n\r\n let foundPrefix = findWord(prefixes, words[0]);\r\n\r\n if (foundPrefix) {\r\n result.prefix = foundPrefix;\r\n words.shift();\r\n }\r\n }\r\n\r\n function extractSuffix(words: string[], result: IPersonName) {\r\n if (suffixes == null || words.length == 0)\r\n return;\r\n\r\n let foundSuffix = findWord(suffixes, last(words));\r\n\r\n if (foundSuffix) {\r\n result.suffix = foundSuffix;\r\n words.pop();\r\n }\r\n }\r\n\r\n function isFormalForm(name: string): boolean {\r\n let suffixFollowsComma = false;\r\n let commaIndex = name.indexOf(',');\r\n\r\n if (commaIndex > -1) {\r\n let afterComma = name.substring(commaIndex + 1).trim();\r\n suffixFollowsComma = findWord(suffixes, afterComma) != null;\r\n }\r\n\r\n let hasCommaNotFollowedBySuffix = commaIndex > -1 && !suffixFollowsComma;\r\n return hasCommaNotFollowedBySuffix;\r\n }\r\n\r\n function findWord(words: string[], testword: string): string | null {\r\n if (words == null || !testword || testword.isNullOrWhitespace())\r\n return null;\r\n\r\n return _.find(words, x => isEqualIgnoreCase(x, testword) || isEqualIgnoreCase(x, testword + \".\"));\r\n }\r\n\r\n function last(array: T[]): T {\r\n return array[array.length - 1];\r\n }\r\n\r\n function isEqualIgnoreCase(a: string, b: string): boolean {\r\n return a.localeCompare(b, undefined, { sensitivity: 'accent' }) === 0;\r\n }\r\n\r\n function trimDot(value: string): string {\r\n return value.replace('.', '');\r\n }\r\n }\r\n\r\n public format(): string | null {\r\n let middle = this.middle;\r\n if (middle && middle.length == 1)\r\n middle += '.';\r\n\r\n let nocomma = PersonName.joinNotNullOrWhitespace(\" \", this.prefix, this.first, middle);\r\n let name = PersonName.joinNotNullOrWhitespace(\", \", this.last, nocomma, this.suffix);\r\n return !name || name.isNullOrWhitespace() ? null : name;\r\n }\r\n\r\n public formatInformal(): string | null {\r\n let middle = this.middle;\r\n if (middle && middle.length == 1)\r\n middle += '.';\r\n\r\n let name = PersonName.joinNotNullOrWhitespace(\" \", this.prefix, this.first, middle, this.last);\r\n if (!this.suffix.isNullOrWhitespace())\r\n name = name + \", \" + this.suffix;\r\n\r\n return !name || name.isNullOrWhitespace() ? null : name;\r\n }\r\n\r\n private static joinNotNullOrWhitespace = function (separator: string, ...args: string[]): string {\r\n return args.filter(x => x && !x.isNullOrWhitespace()).join(separator);\r\n }\r\n}\r\n\r\nexport default PersonName;\r\n","import $ from 'jquery';\r\nimport { ErrorPopover } from \"./errorpopover\";\r\nimport { FormValidation, IValidationHandler } from \"./formvalidation\";\r\nimport { FieldValidationHandler } from \"./fieldvalidationhandler\";\r\n\r\n\r\nexport class PhoneValidationHandler implements IValidationHandler {\r\n handle($error: JQuery): boolean {\r\n var $phoneField = $error.closest('.phone-field');\r\n var isPhone = $phoneField.length > 0;\r\n if (isPhone == false)\r\n return false;\r\n\r\n if ($phoneField.data('error-handled') == true)\r\n return true;\r\n\r\n var $errors = $phoneField.find('.field-validation-error')\r\n var $errorRollUp = $('');\r\n $errors.each(function () {\r\n var $error = $(this);\r\n $errorRollUp.append($('
').append($error.html()));\r\n new FieldValidationHandler().handle($error);\r\n });\r\n\r\n var $targetInput = $phoneField.find('.phone-full-input');\r\n var targetId = $errors.first().data('for') + '-phone-full-input';\r\n new ErrorPopover().append($targetInput, targetId, $errorRollUp);\r\n $phoneField.data('error-handled', true);\r\n\r\n return true;\r\n }\r\n}\r\n","export class PrintPreview {\r\n public static wireup() {\r\n document.addEventListener('click', function (e: Event) {\r\n let element = e.target as HTMLElement;\r\n if (!element.matches('[data-print]'))\r\n return;\r\n\r\n let id = element.getAttribute('data-print');\r\n let iframe = document.querySelector('print-preview'.asDataSelector(id)).querySelector('iframe') as HTMLIFrameElement;\r\n iframe.focus();\r\n try {\r\n iframe.contentWindow.document.execCommand('print', false, null)\r\n }\r\n catch (e) {\r\n iframe.contentWindow.print();\r\n }\r\n });\r\n }\r\n}","import $ from 'jquery';\r\nimport { ErrorPopover } from \"./errorpopover\";\r\nimport { FormValidation, IValidationHandler } from \"./formvalidation\"\r\n\r\nexport class RadioValidationHandler implements IValidationHandler {\r\n handle($error: JQuery): boolean {\r\n var $radioField = $error.closest('.input-radio-fields');\r\n var isRadio = $radioField.length > 0;\r\n if (!isRadio)\r\n return false;\r\n\r\n if ($radioField.data('error-handled') == true)\r\n return true;\r\n\r\n var errorMessage = $error.html();\r\n $radioField.data('error-handled', true);\r\n var id = Math.random().toString();\r\n $error.remove();\r\n new ErrorPopover().append($radioField, id, errorMessage, 'focusin');\r\n\r\n return true;\r\n }\r\n}\r\n","import Focus from \"./focusfield\";\r\n\r\nexport class KeyboardFocusBounds {\r\n public static wireupDocument() {\r\n $(document).on('focus', '[data-keyboard-focus-bound]', function () {\r\n let $guard = $(this);\r\n let $parent = $guard.parent();\r\n if ($guard == $parent.find('[data-keyboard-focus-bound]').first())\r\n Focus.focusLastElement($parent);\r\n else\r\n Focus.focusFirstElement($parent);\r\n });\r\n }\r\n}\r\n\r\nexport default KeyboardFocusBounds;","import { FileInput } from \"./fileinput\";\r\nimport { Url } from \"../utilities/url\";\r\nimport { AsyncFileField } from \"./asyncfilefield\";\r\nimport _ from \"underscore\";\r\n\r\nexport class DragAndDropUpload {\r\n public static get wireup(): string { return '[data-drag-and-drop-upload]'; }\r\n\r\n private DEFAULTS: IDragAndDropUploadOptions = {\r\n queryParameterName: 'fileCount'\r\n }\r\n\r\n private options: IDragAndDropUploadOptions;\r\n private element: HTMLElement;\r\n\r\n public constructor(element: HTMLElement, options?: IDragAndDropUploadOptions) {\r\n if (element == null)\r\n throw new Error('You must provide an element to DragAndDropUpload')\r\n this.element = element;\r\n this.options = _.extend({}, this.DEFAULTS, this.getOptionsFromElement(), options);\r\n this.wireUpFileDragAndDrop();\r\n }\r\n\r\n public static load(element: HTMLElement, options?: IDragAndDropUploadOptions): DragAndDropUpload {\r\n let dragAndDropUploadElement = element as IDragAndDropUploadElement;\r\n if (!dragAndDropUploadElement.dragAndDropUpload)\r\n dragAndDropUploadElement.dragAndDropUpload = new DragAndDropUpload(dragAndDropUploadElement, options);\r\n\r\n return dragAndDropUploadElement.dragAndDropUpload;\r\n }\r\n\r\n public static wireupDocument(): void {\r\n $(document).on('draganddropuploadinputsready', (event: JQueryEventObject, data?: any) => {\r\n if (data === undefined) return;\r\n\r\n let fileFieldsContainer = document.querySelector(data.selector);\r\n let files = FileInput.droppedFiles;\r\n let fileFields = fileFieldsContainer.querySelectorAll('[data-file-field]');\r\n\r\n for (let i = 0; i < files.length; i++) {\r\n let fileField = $(fileFields[i]).data('rustig.asyncfilefield');\r\n fileField.addFile(files[i]);\r\n }\r\n });\r\n }\r\n\r\n private getOptionsFromElement(): IDragAndDropUploadOptions {\r\n let options = {} as IDragAndDropUploadOptions;\r\n\r\n if (this.element.getAttribute('data-query-parameter-name'))\r\n options.queryParameterName = this.element.getAttribute('data-query-parameter-name');\r\n\r\n return options;\r\n }\r\n\r\n private wireUpFileDragAndDrop(): void {\r\n $(this.element).fileDragAndDrop({\r\n onFileDrop: ($dropArea: JQuery, files: Array, event: Event) => {\r\n this.element.classList.remove('over');\r\n\r\n FileInput.storeDroppedFiles(files);\r\n\r\n let fileCount = files.length;\r\n let url = this.element.getAttribute('data-url');\r\n $(this.element).remote({\r\n url: new Url(url).setQueryParameter(this.options.queryParameterName, fileCount.toString()).toUrl()\r\n })\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport interface IDragAndDropUploadElement extends HTMLInputElement {\r\n dragAndDropUpload: DragAndDropUpload;\r\n}\r\n\r\nexport interface IDragAndDropUploadOptions {\r\n queryParameterName: string;\r\n}\r\n\r\nexport default DragAndDropUpload;\r\n\r\n","import $ from 'jquery';\r\nimport { ErrorPopover, IClearErrorOptions } from \"./errorpopover\";\r\nimport { FormValidation, IValidationHandler } from \"./formvalidation\"\r\n\r\nexport class DropdownValidationHandler implements IValidationHandler {\r\n handle($error: JQuery): boolean {\r\n let targetId = $error.data('for');\r\n if (!targetId)\r\n return false;\r\n\r\n let $context = this.resolveContext($error);\r\n let $targetInput = $context.find('#' + targetId);\r\n\r\n if ($targetInput.length == 0)\r\n return false;\r\n\r\n let $dropdownField = $targetInput.closest('.dropdown-field');\r\n let isDropdown = $dropdownField.length > 0;\r\n if (!isDropdown)\r\n return false;\r\n\r\n if ($dropdownField.data('error-handled') == true)\r\n return true;\r\n\r\n let errorMessage = $error.html();\r\n\r\n $dropdownField.data('error-handled', true);\r\n $error.remove();\r\n\r\n let $select = $dropdownField.find('select');\r\n new ErrorPopover().append($targetInput, targetId, errorMessage, null, {\r\n clearErrorWireups: [\r\n { $targetInput: $targetInput, triggerEvents: 'change input' },\r\n { $targetInput: $select, triggerEvents: 'change' }\r\n ],\r\n onErrorPopoverDisabled: () => this.onErrorPopoverDisabled($targetInput)\r\n } as IClearErrorOptions);\r\n\r\n return true;\r\n }\r\n\r\n private onErrorPopoverDisabled($field: JQuery): void {\r\n $field.removeClass(FormValidation.validationClass);\r\n }\r\n\r\n private resolveContext($error: JQuery) {\r\n let $form = $error.closest('form');\r\n\r\n return $form.length > 0 ? $form\r\n : $(document);\r\n }\r\n}","import $ from 'jquery';\r\nimport { ErrorPopover, IClearErrorOptions } from \"./errorpopover\";\r\nimport { FormValidation, IValidationHandler } from \"./formvalidation\";\r\n\r\nexport class DateRangeValidationHandler implements IValidationHandler {\r\n handle($error: JQuery): boolean {\r\n let targetId = $error.data('for') as string;\r\n if (!targetId)\r\n return false;\r\n\r\n let $context = this.resolveContext($error);\r\n let $targetInput = $context.find('#' + targetId);\r\n\r\n if ($targetInput.length == 0)\r\n return false;\r\n\r\n let $dateRangeField = $targetInput.closest('[data-daterange]');\r\n let isDateRangeMainInput = $dateRangeField.length > 0 && targetId.endsWith('-display');\r\n if (!isDateRangeMainInput)\r\n return false;\r\n\r\n if ($dateRangeField.data('error-handled') == true)\r\n return true;\r\n\r\n let errorMessage = $error.html();\r\n\r\n $dateRangeField.data('error-handled', true);\r\n $error.remove();\r\n\r\n let $valueInput = $dateRangeField.find('[data-daterange-input]');\r\n let $userFacingElement = $dateRangeField.find('[data-daterange-display]');\r\n new ErrorPopover().append($targetInput, targetId, errorMessage, null, {\r\n clearErrorWireups: [\r\n { $targetInput: $valueInput, triggerEvents: 'ondaterangechanged' },\r\n ],\r\n onErrorPopoverDisabled: () => {\r\n this.onErrorPopoverDisabled($targetInput);\r\n this.onErrorPopoverDisabled($userFacingElement);\r\n }\r\n } as IClearErrorOptions);\r\n\r\n return true;\r\n }\r\n\r\n private onErrorPopoverDisabled($field: JQuery): void {\r\n $field.removeClass(FormValidation.validationClass);\r\n }\r\n\r\n private resolveContext($error: JQuery) {\r\n let $form = $error.closest('form');\r\n\r\n return $form.length > 0 ? $form\r\n : $(document);\r\n }\r\n}","import $ from 'jquery';\r\nimport { ErrorPopover, IClearErrorOptions, IClearErrorWireup } from \"./errorpopover\";\r\nimport { IValidationHandler } from \"./formvalidation\"\r\n\r\nexport class AsyncFileValidationHandler implements IValidationHandler {\r\n handle($error: JQuery): boolean {\r\n let $asyncFileField = $error.closest('[data-file-field]');\r\n let isFileField = $asyncFileField.length > 0;\r\n if (!isFileField)\r\n return false;\r\n\r\n if ($asyncFileField.data('error-handled') == true)\r\n return true;\r\n\r\n let errorMessage = $error.html();\r\n let targetId = $error.data('for');\r\n let $context = this.resolveContext($error);\r\n let $targetInput = $context.find('#' + targetId);\r\n\r\n if ($targetInput.length == 0)\r\n return false;\r\n\r\n $asyncFileField.data('error-handled', true);\r\n $error.remove();\r\n\r\n new ErrorPopover().append($targetInput, targetId, errorMessage, null, {\r\n clearErrorWireups: [\r\n { $targetInput: $targetInput, triggerEvents: 'fileadded' },\r\n ]\r\n } as IClearErrorOptions);\r\n\r\n return true;\r\n }\r\n\r\n private resolveContext($error: JQuery) {\r\n let $form = $error.closest('form');\r\n\r\n return $form.length > 0 ? $form\r\n : $(document);\r\n }\r\n}","import $ from 'jquery';\r\nimport 'moment';\r\nimport { Patches } from './patches';\r\nimport { Polyfills } from './polyfills';\r\n\r\nimport { ActionResult } from './utilities/actionresult';\r\n\r\nimport { AddressLoader } from './modules/addressloader';\r\nimport { AgeField } from './modules/agefield';\r\nimport { AsyncFileField } from './modules/asyncfilefield';\r\nimport { BrowserHistory } from './modules/browserhistory';\r\nimport { DateField } from './modules/datefield';\r\nimport { DateRangeField } from './modules/daterangefield';\r\nimport { Drawer } from './modules/drawer';\r\nimport { DualListBox } from './modules/duallistbox';\r\nimport { EditorTable } from './modules/editortable/editortable';\r\nimport { FileDragOut } from './modules/filedragout';\r\nimport { FileInput } from './modules/fileinput';\r\nimport { FilterItems } from './modules/filteritems';\r\nimport { ItemList } from './modules/itemlist';\r\nimport { JsonBuilder } from './modules/editortable/jsonbuilder';\r\nimport { Modal } from './modules/modal';\r\nimport './modules/multiselectcontextmenuitem';\r\nimport { MultiSelectDropdown } from './modules/multiselectdropdown';\r\nimport { MultiSelectTable } from './modules/multiselecttable';\r\nimport { PhotoViewer } from './modules/photoviewer';\r\nimport { PopOver } from './modules/popover';\r\nimport { RealTimeValidation } from './modules/realtimevalidation';\r\nimport { Remote } from './modules/remote/remote';\r\nimport { RemotePopOver } from './modules/remotepopover';\r\nimport { RichText } from './modules/richtext';\r\nimport { SearchField } from './modules/searchfield';\r\nimport { SuggestSearch } from './modules/suggestsearch';\r\nimport { Tabs } from './modules/tabs';\r\nimport { ThumbnailDownloader } from './modules/thumbnaildownloader';\r\nimport { ThumbnailUpload } from './modules/thumbnailupload';\r\nimport { ToggleState } from './modules/togglestate';\r\nimport { TreeInput } from './modules/treefield/treeinput';\r\nimport { Validation } from './modules/editortable/validation';\r\n\r\nimport { AutoHeightTable } from './utilities/autoheighttable';\r\nimport { AutoRequest } from './utilities/autorequest';\r\nimport { Autosave } from './utilities/autosave';\r\nimport { CheckboxValidationHandler } from './utilities/formvalidation/checkboxvalidationhandler';\r\nimport { DateExpression } from './utilities/dateexpression';\r\nimport { DocumentViewer } from './utilities/documentviewer';\r\nimport { ErrorPopover } from './utilities/formvalidation/errorpopover';\r\nimport { EventListener } from './utilities/eventlistener';\r\nimport { EventNotifier } from './utilities/eventnotifier';\r\nimport { FieldValidationHandler } from './utilities/formvalidation/fieldvalidationhandler';\r\nimport { FormValidation } from './utilities/formvalidation/formvalidation';\r\nimport { HandlesWindowNavigation } from './utilities/handleswindownavigation';\r\nimport { HasChanges } from './utilities/haschanges';\r\nimport { KeyboardScrollable } from './utilities/keyboardscrollable';\r\nimport { MathExpressions } from './utilities/mathexpressions';\r\nimport { MultiSelectDropdownValidationHandler } from './utilities/formvalidation/multiselectdropdownvalidationhandler';\r\nimport { NameValidationHandler } from './utilities/formvalidation/namevalidationhandler'\r\nimport { Navigate } from './utilities/navigate';\r\nimport { PersonName } from './utilities/personname';\r\nimport { PhoneValidationHandler } from './utilities/formvalidation/phonevalidationhandler';\r\nimport { PrintPreview } from './utilities/printpreview';\r\nimport { RadioValidationHandler } from './utilities/formvalidation/radiovalidationhandler';\r\nimport { ReadonlyIf } from './utilities/readonlyif';\r\nimport { ScrollTo } from './utilities/scrollto';\r\nimport { ShowIf } from './utilities/showif';\r\nimport { ToggleValue } from './utilities/togglevalue';\r\nimport { TransformTextToLink } from './utilities/transformtexttolink';\r\nimport { ValueBinding } from './utilities/valuebinding';\r\nimport './utilities/visibility';\r\n\r\nimport Application from './application';\r\nimport KeyboardFocusBounds from './utilities/keyboardfocusbounds';\r\nimport DragAndDropUpload from './modules/draganddropupload';\r\nimport { DropdownValidationHandler } from './utilities/formvalidation/dropdownvalidationhandler';\r\nimport { DateRangeValidationHandler } from './utilities/formvalidation/daterangevalidationhandler';\r\nimport { AsyncFileValidationHandler } from './utilities/formvalidation/asyncfilevalidationhandler';\r\nimport { ElementPosition } from './utilities/elementposition';\r\n\r\nexport class Wireup {\r\n\r\n constructor() {\r\n this.registerDefaults();\r\n }\r\n\r\n push(selector, wireup) {\r\n Application.convention(selector, wireup);\r\n }\r\n\r\n execute() {\r\n\r\n console.log('rustig initializing');\r\n\r\n Polyfills.Execute();\r\n Patches.Execute();\r\n\r\n window.Rustig = {\r\n ActionResult: ActionResult,\r\n Modal: Modal,\r\n PersonName: PersonName,\r\n ThumbnailDownloader: ThumbnailDownloader,\r\n AddressLoader: AddressLoader,\r\n AsyncFileField: AsyncFileField,\r\n ElementPosition: ElementPosition\r\n };\r\n //hack for editortable, fix this\r\n window.JsonBuilder = JsonBuilder;\r\n window.isWindowUnloading = false;\r\n window.onbeforeunload = function () {\r\n window.isWindowUnloading = true;\r\n };\r\n Application.conventionsReady = false;\r\n\r\n let defaults = {};\r\n window.RUSTIG_OPTIONS = $.extend({}, defaults, window.RUSTIG_OPTIONS);\r\n window.Application = Application;\r\n\r\n Application.wireupConventions(document);\r\n Application.triggerConventionsReady();\r\n\r\n }\r\n\r\n private registerDefaults() {\r\n // Don't click the first button in a form when hitting the enter key\r\n $(document).on('keypress.rustig', 'form:not([data-allow-enter]) input[type!=submit], form:not([data-allow-enter]) select', function (event) {\r\n return event.keyCode != 13;\r\n });\r\n\r\n $(document).on('formvalidationhandled.rustig.formvalidation', Tabs.applyErrors);\r\n\r\n FormValidation.registerHandler(\r\n new PhoneValidationHandler(),\r\n new NameValidationHandler(),\r\n new RadioValidationHandler(),\r\n new CheckboxValidationHandler(),\r\n new DropdownValidationHandler(),\r\n new DateRangeValidationHandler(),\r\n new AsyncFileValidationHandler(),\r\n new FieldValidationHandler(),\r\n new MultiSelectDropdownValidationHandler()\r\n );\r\n\r\n\r\n Application.convention('[disabled]', $.fn.disable);\r\n Application.convention('.name-field', $.fn.nameField);\r\n Application.convention('.phone-field', $.fn.phoneField);\r\n Application.convention('.money-field', $.fn.moneyField);\r\n Application.convention('.number-field', $.fn.numberField);\r\n Application.convention('.percent-field', $.fn.percentField);\r\n Application.convention('select:not(\"[data-et-vanilla-select]\")', $.fn.dropDown);\r\n Application.convention(SearchField.wireup, $.fn.searchField);\r\n Application.convention(RichText.wireup, $.fn.richtext);\r\n Application.convention('[data-error-message]', $.fn.errorMessage);\r\n Application.convention(PopOver.wireup, $.fn.popover);\r\n Application.convention(RemotePopOver.wireup, $.fn.remotePopover);\r\n Application.convention(Tabs.wireup, $.fn.tabs);\r\n Application.convention('[data-nav]', $.fn.nav);\r\n Application.convention(DateField.wireup, $.fn.datefield);\r\n Application.convention(MultiSelectTable.wireup, $.fn.multiselecttable);\r\n Application.convention(EditorTable.wireup, $.fn.editortable);\r\n Application.convention(FileInput.wireup, $.fn.fileinput);\r\n Application.convention(FileDragOut.wireup, $.fn.filedragout);\r\n Application.convention(Remote.triggerWireup, Remote.wireupTriggers);\r\n Application.convention(ValueBinding.wireup, $.fn.valuebinding);\r\n Application.convention(Validation.wireup, $.fn.editortable_validation);\r\n Application.convention('.field-validation-error', () => FormValidation.handleErrors());\r\n Application.convention(DocumentViewer.wireup, $.fn.documentviewer);\r\n Application.convention(ThumbnailUpload.wireup, $.fn.thumbnailupload);\r\n Application.convention(SuggestSearch.wireup, $.fn.suggestsearch);\r\n Application.convention(ToggleState.wireup, $.fn.togglestate);\r\n Application.convention(Drawer.wireup, $.fn.drawer);\r\n Application.convention(KeyboardScrollable.wireup, $.fn.keyboardscrollable);\r\n Application.convention(BrowserHistory.wireup, BrowserHistory.createHistory);\r\n Application.convention(Navigate.wireup, $.fn.navigate);\r\n Application.convention(PhotoViewer.wireup, $.fn.photoviewer);\r\n Application.convention(RealTimeValidation.wireup, $.fn.realtimevalidation);\r\n Application.convention(EventListener.wireup, $.fn.eventlistener);\r\n Application.convention(EventNotifier.wireup, $.fn.eventnotifier);\r\n Application.convention(Autosave.wireup, $.fn.autosave);\r\n Application.convention(TransformTextToLink.wireup, $.fn.transformtexttolink);\r\n Application.convention(ThumbnailDownloader.wireup, $.fn.thumbnaildownloader);\r\n Application.convention(TreeInput.wireup, $.fn.treeinput);\r\n Application.convention('.dropdowntree-field', $.fn.dropdowntree);\r\n Application.convention(AutoRequest.wireup, $.fn.autorequest);\r\n Application.convention(AsyncFileField.wireup, $.fn.asyncfilefield);\r\n Application.convention('[data-multiselect-checkbox]:not([data-multiselect-selector])', $.fn.multiselecttablerow);\r\n Application.convention(ScrollTo.wireup, $.fn.scrollto);\r\n Application.convention(FilterItems.wireup, $.fn.filteritems);\r\n Application.convention(MultiSelectDropdown.wireup, $.fn.multiselectdropdown);\r\n Application.convention(DateRangeField.wireup, function () {\r\n $(this).each(function () {\r\n DateRangeField.load(this);\r\n });\r\n });\r\n Application.convention(DragAndDropUpload.wireup, function () {\r\n $(this).each(function () {\r\n DragAndDropUpload.load(this);\r\n });\r\n });\r\n Application.convention(DateExpression.wireup, $.fn.dateexpression);\r\n Application.convention(DualListBox.wireup, $.fn.duallistbox);\r\n Application.convention(AutoHeightTable.wireup, $.fn.autoheighttable);\r\n\r\n AgeField.wireupDocument();\r\n AddressLoader.wireupDocument();\r\n ItemList.wireupDocument();\r\n Remote.wireupDocument();\r\n Modal.initialize();\r\n ToggleValue.wireupDocument();\r\n ReadonlyIf.wireupDocument();\r\n ShowIf.wireupDocument();\r\n KeyboardFocusBounds.wireupDocument();\r\n DragAndDropUpload.wireupDocument();\r\n MathExpressions.wireup();\r\n PrintPreview.wireup();\r\n HasChanges.wireup();\r\n }\r\n}\r\n","import $ from 'jquery';\r\nimport { ThumbnailUpload, IThumbnailUploadOptions, IUploadCompleteResponse} from \"./thumbnailupload\"\r\nimport Modal from \"./modal\";\r\nimport Ajax from \"./remote/ajax\";\r\nimport Url from \"../utilities/url\";\r\nimport FileSize from \"../utilities/filesize\";\r\nimport BuildsExtensionIcon from \"../utilities/buildsextensionicon\";\r\nimport \"../utilities/disable\";\r\nimport \"../utilities/readonly\"\r\nimport { FileName } from '../../../rustig';\r\n\r\ndeclare global {\r\n interface JQuery {\r\n asyncfilefield(option, args): any;\r\n }\r\n}\r\n\r\nexport class AsyncFileField {\r\n public static get wireup(): string { return '[data-file-field]'; }\r\n\r\n private $element: JQuery;\r\n private options: IAsyncFileFieldOptions;\r\n\r\n private $fileChooser: JQuery;\r\n private $previewContainer: JQuery;\r\n\r\n private $hiddenId: JQuery;\r\n private $hiddenFilename: JQuery;\r\n private $hiddenLength: JQuery;\r\n\r\n private fileBeingUploaded: File;\r\n private state: string;\r\n private uploader: ThumbnailUpload;\r\n\r\n private onValidationComplete: any;\r\n private static get preUploadInvalidFileMessage(): string { return 'invalid-file'; }\r\n private static get cannotUploadAnymoreFiles(): string { return 'You can not upload any more files.'; }\r\n\r\n public get $userFacingElement(): JQuery { return this.$element; }\r\n public get $valueElement(): JQuery { return this.$hiddenId; }\r\n\r\n public constructor($element: JQuery, options?: IAsyncFileFieldOptions) {\r\n if (!$element || $element.length != 1)\r\n throw new Error('You must provide a single element to Rustig.AsyncFileField');\r\n this.$element = $element;\r\n\r\n this.options = $.extend({}, this.$element.data(), options);\r\n this.initializeElements();\r\n this.setOnClickListeners();\r\n this.initializeDocumentUploader();\r\n this.setState();\r\n }\r\n\r\n public addFile(file: File): void {\r\n if (!file)\r\n throw new Error('file cannot be null');\r\n if (this.state !== 'beforeupload')\r\n throw new Error('Cannot upload file');\r\n\r\n this.uploader.addFile(file);\r\n }\r\n\r\n public value(value?: any): any | void {\r\n if (value !== undefined && value.id) {\r\n this.setValue(value);\r\n this.reload();\r\n }\r\n else\r\n return this.getValue();\r\n }\r\n\r\n public text(text?: any): any | void {\r\n if (text !== undefined) {\r\n this.$hiddenFilename.val(text);\r\n this.reload();\r\n }\r\n else {\r\n let fileName = this.$userFacingElement.find('tu-name'.asDataSelector()).text();\r\n if (!fileName)\r\n return null;\r\n\r\n return new FileName(fileName).withoutExtension();\r\n }\r\n }\r\n\r\n public name(): string {\r\n return this.$hiddenId.attr('name');\r\n }\r\n\r\n private reload(): void {\r\n if (this.state === 'uploading')\r\n this.cancelUploadInProgress();\r\n else if (this.state === 'uploadcomplete')\r\n this.clearInput();\r\n\r\n this.setUploadCompleteState();\r\n }\r\n\r\n private getValue(): FileInputs {\r\n return {\r\n id: this.$hiddenId.val() as number,\r\n filename: this.$hiddenFilename.val() as string,\r\n length: this.$hiddenLength.val() as number\r\n };\r\n }\r\n\r\n private setValue(value: any): void {\r\n if (value[\"id\"])\r\n this.$hiddenId.val(value[\"id\"])\r\n if (value[\"filename\"])\r\n this.$hiddenFilename.val(value[\"filename\"])\r\n if (value[\"length\"])\r\n this.$hiddenLength.val(value[\"length\"])\r\n }\r\n\r\n private initializeElements(): void {\r\n this.$fileChooser = this.$element.find('[data-ff-file-chooser]');\r\n this.$previewContainer = this.$element.find('[data-ff-preview]');\r\n this.$hiddenId = this.$element.find('[data-ff-id]');\r\n this.$hiddenFilename = this.$element.find('[data-ff-filename]');\r\n this.$hiddenLength = this.$element.find('[data-ff-length]');\r\n }\r\n\r\n private initializeDocumentUploader(): void {\r\n let id = this.options.uniqueId || Math.floor(Math.random() * 100000);\r\n this.$element.attr('data-ff-uploader-id', id);\r\n\r\n this.uploader = new ThumbnailUpload({\r\n $dropzone: this.$fileChooser,\r\n $previewContainer: this.$previewContainer,\r\n uniqueId: id,\r\n onFileAdded: this.onFileAdded.bind(this),\r\n onUploadComplete: this.onUploadComplete.bind(this),\r\n onError: this.onError.bind(this),\r\n accept: this.$fileChooser.is('[data-ff-preupload-url]') ? this.preUpload.bind(this) : null\r\n });\r\n\r\n if (this.options.dropElementSelector) {\r\n this.uploader.addElementAsDragAndDropArea($(this.options.dropElementSelector)[0]);\r\n }\r\n\r\n var value = this.getValue();\r\n if (value.id) {\r\n let file = new File([\"temp\"], value.filename, null);\r\n this.uploader.initFile(file);\r\n }\r\n }\r\n\r\n private preUpload(file: File, onValidationComplete: any): void {\r\n this.onValidationComplete = onValidationComplete;\r\n\r\n Ajax.execute({\r\n url: new Url(this.$fileChooser.data('ff-preupload-url'))\r\n .setQueryParameter('uploaderId', this.$element.data('ff-uploader-id'))\r\n .setQueryParameter('fileSize', file.size.toString())\r\n .setQueryParameter('fileName', file.name)\r\n .toUrl(),\r\n error: (jqXHR, textStatus, errorThrown) => {\r\n onValidationComplete(AsyncFileField.preUploadInvalidFileMessage);\r\n if (!window.isWindowUnloading) {\r\n if (jqXHR.status == 0)\r\n Modal.openDisconnectModal();\r\n else\r\n Modal.openErrorModal(jqXHR.responseText);\r\n }\r\n }\r\n });\r\n }\r\n\r\n public static preUploadComplete(data: IPreUploadResult): void {\r\n var asyncFileField = $(('ff-uploader-id').asDataSelector(data.id)).data('rustig.asyncfilefield');\r\n if (data.fileIsValid) {\r\n asyncFileField.onValidationComplete();\r\n asyncFileField.$element.trigger('preuploaded');\r\n }\r\n else\r\n asyncFileField.onValidationComplete(AsyncFileField.preUploadInvalidFileMessage); // triggers an error\r\n }\r\n\r\n private setOnClickListeners(): void {\r\n this.$element.on('click.rustig.filefield', '[data-ff-cancel]', this.onCancel.bind(this));\r\n if (this.options.cancelsKey)\r\n $(document).on('click.rustig.filefield', '[data-ff-cancel-' + this.options.cancelsKey + ']', this.onCancel.bind(this));\r\n\r\n this.$fileChooser.on('click.rustig.filefield', function (e: Event) {\r\n if (this.$element.isReadonly() || this.$element.isDisabled())\r\n e.stopImmediatePropagation();\r\n }.bind(this));\r\n }\r\n\r\n private setState(): void {\r\n if (this.$hiddenId.val()) {\r\n this.setUploadCompleteState();\r\n }\r\n else if (this.uploader.getUploadingFiles().length) {\r\n this.$element.addClass('ff-uploading');\r\n this.state = 'uploading';\r\n this.fileBeingUploaded = this.uploader.getUploadingFiles()[0];\r\n }\r\n else {\r\n this.state = 'beforeupload';\r\n }\r\n }\r\n\r\n private setUploadCompleteState(): void {\r\n this.$element.addClass('ff-upload-complete');\r\n this.state = 'uploadcomplete';\r\n this.createThumbnail();\r\n this.fileBeingUploaded = this.uploader.getAllFiles()[0];\r\n }\r\n\r\n private createThumbnail(): void {\r\n let $thumbnail = this.$element.find('[data-tu-preview-template]').children().first().clone().appendTo(this.$previewContainer);\r\n\r\n let filename = this.$hiddenFilename.val() as string;\r\n let filesize = Number(this.$hiddenLength.val());\r\n $thumbnail.find('[data-tu-name]').attr('title', filename).html(filename);\r\n $thumbnail.find('[data-ff-filetype]').addClass(new BuildsExtensionIcon().execute(filename));\r\n $thumbnail.find('[data-ff-filesize]').html(new FileSize(filesize).toString());\r\n }\r\n\r\n private onCancel(): void {\r\n if (this.$element.isReadonly() || this.$element.isDisabled())\r\n return;\r\n\r\n if (this.state === 'uploading')\r\n this.cancelUploadInProgress();\r\n else if (this.state === 'uploadcomplete')\r\n this.cancelCompletedUpload();\r\n\r\n this.$element.trigger('fileremoved');\r\n }\r\n\r\n private cancelUploadInProgress(): void {\r\n this.$element.removeClass('ff-uploading');\r\n this.state = 'beforeupload';\r\n this.enableLinkedElements();\r\n this.uploader.removeFile(this.fileBeingUploaded);\r\n }\r\n\r\n private cancelCompletedUpload(): void {\r\n Ajax.execute({\r\n url: this.buildsRemoveUrl(),\r\n type: 'post',\r\n success: () => {\r\n this.uploader.removeFile(this.fileBeingUploaded);\r\n this.clearInput();\r\n }\r\n });\r\n }\r\n\r\n private clearInput(): void {\r\n this.state = 'beforeupload';\r\n this.$previewContainer.html('');\r\n this.$element.removeClass('ff-upload-complete');\r\n this.$hiddenId.val(null);\r\n this.$hiddenFilename.val(null);\r\n this.$hiddenLength.val(null);\r\n }\r\n\r\n private buildsRemoveUrl(): string {\r\n let url = this.$fileChooser.data('tu-remove-url');\r\n let serverId = this.$hiddenId.val() as string;\r\n\r\n return new Url(url)\r\n .setQueryParameter('serverId', serverId)\r\n .toUrl();\r\n }\r\n\r\n private onFileAdded(file: File): void {\r\n this.$element.addClass('ff-uploading');\r\n this.state = 'uploading';\r\n this.fileBeingUploaded = file;\r\n\r\n this.disableLinkedElements();\r\n\r\n let $thumbnail = $(file.previewElement);\r\n $thumbnail.find('[data-ff-filetype]').addClass(new BuildsExtensionIcon().execute(file.name));\r\n $thumbnail.find('[data-ff-filesize]').html(new FileSize(file.size).toString());\r\n this.$element.trigger('fileadded');\r\n }\r\n\r\n private onUploadComplete(file: File, responseText: IUploadCompleteResponse[], xhr: JQueryXHR): void {\r\n if (!responseText || !responseText.length || responseText[0].errorText)\r\n return;\r\n\r\n this.$element.removeClass('ff-uploading').addClass('ff-upload-complete');\r\n this.state = 'uploadcomplete';\r\n\r\n let serverId = $(this.fileBeingUploaded.previewElement).data('server-id');\r\n this.$hiddenId.val(serverId);\r\n this.$hiddenFilename.val(this.fileBeingUploaded.name);\r\n this.$hiddenLength.val(this.fileBeingUploaded.size);\r\n\r\n this.enableLinkedElements();\r\n }\r\n\r\n private enableLinkedElements(): void {\r\n if (!this.options.disablesKey)\r\n return;\r\n\r\n $('[data-ff-toggle-enabled-' + this.options.disablesKey + ']').each(function () {\r\n let $element = $(this);\r\n let numberOfFilesUploading = $element.data('async-file-field-uploading-count') - 1;\r\n $element.data('async-file-field-uploading-count', numberOfFilesUploading);\r\n if (numberOfFilesUploading == 0)\r\n $element.enable();\r\n });\r\n }\r\n\r\n private disableLinkedElements(): void {\r\n if (!this.options.disablesKey)\r\n return;\r\n\r\n $('[data-ff-toggle-enabled-' + this.options.disablesKey + ']').each(function () {\r\n let $element = $(this);\r\n let numberOfFilesUploading = $element.data('async-file-field-uploading-count') || 0;\r\n $element.data('async-file-field-uploading-count', numberOfFilesUploading + 1)\r\n .disable();\r\n });\r\n }\r\n\r\n private onError(file: File, errorMessage: string, xhr: JQueryXHR): void {\r\n if (errorMessage !== AsyncFileField.preUploadInvalidFileMessage)\r\n Modal.openErrorModal(errorMessage);\r\n\r\n if (errorMessage === AsyncFileField.cannotUploadAnymoreFiles) {\r\n this.$previewContainer.find('.dz-error').remove();\r\n this.state = 'uploadcomplete';\r\n this.fileBeingUploaded = this.uploader.getAllFiles()[0];\r\n }\r\n else {\r\n this.state = 'beforeupload'; \r\n this.$previewContainer.html('');\r\n }\r\n\r\n this.$element.removeClass('ff-uploading');\r\n this.enableLinkedElements();\r\n this.uploader.removeFile(file);\r\n this.$element.trigger('fileremoved');\r\n }\r\n\r\n\r\n}\r\n\r\ninterface FileInputs {\r\n id?: number;\r\n filename?: string;\r\n length?: number;\r\n}\r\n\r\nexport interface IPreUploadResult {\r\n id: number;\r\n fileIsValid: boolean;\r\n}\r\n\r\nexport interface IAsyncFileFieldOptions {\r\n disablesKey?: string;\r\n cancelsKey?: string;\r\n uniqueId?: number;\r\n dropElementSelector?: string;\r\n}\r\n\r\nfunction Plugin(option, args) {\r\n return this.each(function () {\r\n var $this = $(this);\r\n var data = $this.data('rustig.asyncfilefield');\r\n var options = typeof option == 'object' && option;\r\n\r\n if (!data) {\r\n data = new AsyncFileField($this, options);\r\n $this.data('rustig.asyncfilefield', data);\r\n }\r\n if (typeof option == 'string')\r\n data[option](args);\r\n });\r\n}\r\n\r\n$.fn.asyncfilefield = Plugin;\r\n\r\nexport default AsyncFileField;\r\n","/**@license\n * sysend.js - send messages between browser windows/tabs version 1.3.3\n *\n * Copyright (C) 2014-2018 Jakub Jankiewicz \n * Released under the MIT license\n *\n * The idea for localStorage implementation came from this StackOverflow question:\n * http://stackoverflow.com/q/24182409/387194\n *\n */\n/* global define, module, exports, localStorage, setTimeout */\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define(['sysend'], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.sysend = factory();\n }\n})(typeof window !== \"undefined\" ? window : this, function() {\n // we use prefix so `foo' event don't collide with `foo' locaStorage value\n var uniq_prefix = '___sysend___';\n var random_value = Math.random();\n // we use id because storage event is not executed if message was not\n // changed, and we want it if user send same object twice (before it will\n // be removed)\n var id = 0;\n // we need to clean up localStorage if broadcast on unload\n // because setTimeout will never fire, even setTimeout 0\n var re = new RegExp('^' + uniq_prefix);\n for(var key in localStorage) {\n if (key.match(re)) {\n localStorage.removeItem(key);\n }\n }\n function get(key) {\n return localStorage.getItem(uniq_prefix + key);\n }\n function set(key, value) {\n // storage event is not fired when value is set first time\n if (id == 0) {\n localStorage.setItem(uniq_prefix + key, random_value);\n }\n localStorage.setItem(uniq_prefix + key, value);\n }\n function remove(key) {\n localStorage.removeItem(uniq_prefix + key);\n }\n function to_json(input) {\n // save random_value in storage to fix issue in IE that storage event\n // is fired on same page where setItem was called\n var obj = [id++, random_value];\n // undefined in array get stringified as null\n if (typeof input != 'undefined') {\n obj.push(input);\n }\n return JSON.stringify(obj);\n }\n function from_json(json) {\n return JSON.parse(json);\n }\n var host = (function() {\n var a = document.createElement('a');\n return function(url) {\n a.href = url;\n return a.host;\n };\n })();\n function send_to_iframes(key, data) {\n // propagate events to iframes\n iframes.forEach(function(iframe) {\n var payload = {\n name: uniq_prefix,\n key: key,\n data: data\n };\n iframe.window.postMessage(JSON.stringify(payload), \"*\");\n });\n }\n // object with user events as keys and values arrays of callback functions\n var callbacks = {};\n var iframes = [];\n var index = 0;\n var channel;\n if (typeof window.BroadcastChannel === 'function') {\n channel = new window.BroadcastChannel(uniq_prefix);\n channel.addEventListener('message', function(event) {\n if (event.target.name === uniq_prefix) {\n var key = event.data && event.data.name;\n if (callbacks[key]) {\n callbacks[key].forEach(function(fn) {\n fn(event.data.data, key);\n });\n }\n }\n });\n } else {\n window.addEventListener('storage', function(e) {\n // prevent event to be executed on remove in IE\n if (e.key.match(re) && index++ % 2 === 0) {\n var key = e.key.replace(re, '');\n if (callbacks[key]) {\n var value = e.newValue || get(key);\n if (value && value != random_value) {\n var obj = JSON.parse(value);\n if (obj && obj[1] != random_value) {\n // don't call on remove\n callbacks[key].forEach(function(fn) {\n fn(obj[2], key);\n });\n }\n }\n }\n }\n }, false);\n }\n // ref: https://stackoverflow.com/a/326076/387194\n function is_iframe() {\n try {\n return window.self !== window.top;\n } catch (e) {\n return true;\n }\n }\n if (is_iframe()) {\n window.addEventListener('message', function(e) {\n var payload = JSON.parse(e.data);\n if (payload.name === uniq_prefix) {\n sysend.broadcast(payload.key, payload.data);\n }\n });\n }\n return {\n broadcast: function(event, message) {\n if (channel) {\n channel.postMessage({name: event, data: message});\n } else {\n set(event, to_json(message));\n // clean up localstorage\n setTimeout(function() {\n remove(event);\n }, 0);\n }\n send_to_iframes(event, message);\n },\n proxy: function(url) {\n if (typeof url === 'string' && host(url) !== window.location.host) {\n var iframe = document.createElement('iframe');\n iframe.style.width = iframe.style.height = 0;\n iframe.style.border = 'none';\n var proxy_url = url;\n if (!url.match(/\\.html$/)) {\n proxy_url = url.replace(/\\/$/, '') + '/proxy.html';\n }\n iframe.addEventListener('error', function handler() {\n setTimeout(function() {\n throw new Error('html proxy file not found on \"' + url + '\" url');\n }, 0);\n iframe.removeEventListener('error', handler);\n });\n iframe.addEventListener('load', function handler() {\n var win;\n try {\n win = iframe.contentWindow;\n } catch(e) {\n win = iframe.contentWindow;\n }\n iframes.push({window: win, node: iframe});\n iframe.removeEventListener('load', handler);\n });\n document.body.appendChild(iframe);\n iframe.src = proxy_url;\n }\n },\n on: function(event, fn) {\n if (!callbacks[event]) {\n callbacks[event] = [];\n }\n callbacks[event].push(fn);\n },\n off: function(event, fn) {\n if (callbacks[event]) {\n if (fn) {\n for (var i=callbacks[event].length; i--;) {\n if (callbacks[event][i] == fn) {\n callbacks[event].splice(i, 1);\n }\n }\n } else {\n callbacks[event] = [];\n }\n }\n }\n };\n});\n"],"names":["___EXPOSE_LOADER_IMPORT___","___EXPOSE_LOADER_GLOBAL_THIS___","module","exports","globalThis","g","this","Function","e","window","self","root","factory","_typeof","Symbol","iterator","obj","constructor","TIME_FORMATS","name","value","LABELS_FOR_POWERS_OF_KILO","P","Math","pow","T","G","M","exists","maybe","isNaN","isFiniteNumber","isFinite","parseFloat","isArray","Object","prototype","toString","call","Humanize","intword","number","charWidth","decimals","arguments","length","undefined","compactInteger","input","max","parseInt","signString","unsignedNumber","abs","unsignedNumberString","String","numberLength","numberLengths","bigNumPrefixes","toExponential","replace","i","_length","decimalIndex","unsignedNumberCharacterArray","split","wholePartArray","slice","decimalPartArray","wholePart","join","decimalPart","Array","indexOf","Number","toFixed","intComma","formatNumber","intcomma","apply","fileSize","filesize","precision","label","hasOwnProperty","minnum","pluralize","_thousand","_position","thousand","decimal","usePrecision","normalizePrecision","negative","base","mod","substr","_number","commas","_decimal","power","round","ordinal","end","times","overrides","smallTimes","singular","plural","truncate","str","ending","substring","truncateWords","string","array","result","truncatewords","boundedNumber","num","bound","truncatenumber","oxford","items","limit","limitStr","numItems","limitIndex","extra","dictionary","object","joiner","separator","defs","key","val","push","frequency","list","verb","len","pace","intervalMs","unit","prefix","timeUnit","relativePace","rate","f","roundedPace","nl2br","replacement","br2nl","capitalize","downCaseTail","charAt","toUpperCase","toLowerCase","capitalizeAll","a","titleCase","smallWords","internalCaps","splitOnWhiteSpaceRegex","splitOnHyphensRegex","_doTitleCase","_string","hyphenated","firstOrLast","titleCasedArray","stringArray","index","word","test","titlecase","moment","defineLocale","months","monthsShort","weekdays","weekdaysShort","weekdaysMin","meridiemParse","isPM","meridiem","hours","minutes","isLower","longDateFormat","LT","LTS","L","LL","LLL","LLLL","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","relativeTime","future","past","s","m","mm","h","hh","d","dd","MM","y","yy","ordinalParse","week","dow","doy","symbolMap","numberMap","hour","minute","preparse","match","postformat","pluralForm","n","plurals","u","withoutSuffix","isFuture","suffixes","relativeTimeWithPlural","forms","format","month","day","period","lastDigit","last2Digits","relativeTimeWithMutation","text","mutationTable","softMutation","mutation","lastNumber","translate","output","monthsParse","_monthsParse","RegExp","exec","processRelativeTime","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","mom","_calendarEl","b","monthsShortDot","l","ll","lll","llll","numbersPast","numbersFuture","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","meridiemHour","weekEndings","ss","token","isUpper","eifelerRegelAppliesToNumber","units","weekDays","translateSingular","special","nominative","weekDay","relativeTimeWithSingular","translator","words","correctGrammaticalCase","wordKey","monthsNominative","monthsSubjective","now","trim","processHoursFunction","hm","startOfWeek","startOf","unix","hookCallback","utils_hooks__hooks","isDate","Date","hasOwnProp","extend","valueOf","create_utc__createUTC","locale","strict","createLocalOrUTC","utc","getParsingFlags","_pf","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","valid__isValid","_isValid","flags","_d","getTime","invalidWeekday","_strict","bigHour","valid__createInvalid","NaN","momentProperties","copyConfig","to","from","prop","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","updateInProgress","Moment","config","updateOffset","isMoment","absFloor","ceil","floor","toInt","argumentForCoercion","coercedNumber","compareArrays","array1","array2","dontConvert","min","lengthDiff","diffs","Locale","globalLocale","locales","normalizeLocale","loadLocale","oldLocale","_abbr","locale_locales__getSetGlobalLocale","values","data","locale_locales__getLocale","abbr","set","names","j","next","chooseLocale","aliases","addUnitAlias","shorthand","lowerCase","normalizeUnits","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","makeGetSet","keepTime","get_set__set","get_set__get","getSet","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","callback","func","localeData","formatMoment","isValid","expandFormat","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","lastIndex","match1","match2","match3","match4","match6","match1to2","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchWord","regexes","addRegexToken","regex","strictRegex","sth","isStrict","getParseRegexForToken","matched","p1","p2","p3","p4","tokens","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","daysInMonth","year","UTC","getUTCDate","defaultLocaleMonths","defaultLocaleMonthsShort","setMonth","dayOfMonth","date","getSetMonth","checkOverflow","_overflowDayOfYear","warn","msg","suppressDeprecationWarnings","console","deprecate","fn","firstTime","Error","stack","deprecations","from_string__isoRegex","isoDates","isoTimes","aspNetJsonRegex","configFromISO","configFromStringAndFormat","createDate","ms","setFullYear","createUTCDate","setUTCFullYear","daysInYear","isLeapYear","createFromInputFallback","_useUTC","parseTwoDigitYear","getSetYear","weekOfYear","firstDayOfWeek","firstDayOfWeekOfYear","adjustedMoment","daysToDayOfWeek","local__createLocal","add","dayOfYear","defaults","c","configFromArray","currentDate","yearToUse","getUTCFullYear","getUTCMonth","getFullYear","getMonth","getDate","currentDateArray","w","weekYear","weekday","temp","GG","W","E","_week","gg","week1Jan","getUTCDay","dayOfYearFromWeeks","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","setUTCMinutes","getUTCMinutes","ISO_8601","parsedInput","skipped","stringLength","totalParsedInputLength","isPm","meridiemFixWrap","_meridiem","prepareConfig","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromStringAndArray","configFromString","arr","res","map","second","millisecond","configFromObject","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","Duration","duration","years","quarters","quarter","weeks","days","seconds","milliseconds","_milliseconds","_days","_months","_data","_bubble","isDuration","offset","utcOffset","sign","offsetFromString","chunkOffset","matches","parts","cloneWithOffset","model","diff","clone","setTime","local","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","create__isoRegex","create__createDuration","ret","diffRes","parseIso","isBefore","positiveMomentsDifference","inp","isAfter","createAdder","direction","tmp","deprecateSimple","add_subtract__addSubtract","isAdding","add_subtract__add","add_subtract__subtract","moment_format__toISOString","toISOString","toDate","newLocaleData","defaultFormat","lang","addWeekYearFormatToken","getter","weeksInYear","isoWeekYear","_ordinalParse","_ordinalParseLenient","getSetDayOfMonth","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","lowercase","matchMeridiem","_meridiemParse","_isPm","getSetHour","getSetMinute","getSetSecond","parseMs","getSetMillisecond","momentPrototype__proto","time","formats","sod","asFloat","delta","wholeMonthDiff","anchor","that","zoneDelta","endOf","subtract","inputString","humanize","fromNow","toNow","get","invalidAt","inputMs","isBetween","isSame","parsingFlags","isoWeekday","toArray","toObject","toJSON","isoWeek","isoWeeks","weekInfo","isoWeeksInYear","getDay","parseWeekday","keepLocalTime","localAdjust","_changeInProgress","parseZone","hasAlignedHourOffset","isDST","isDSTShifted","_isDSTShifted","isLocal","isUtcOffset","zoneAbbr","zoneName","dates","zone","momentPrototype","preParsePostFormat","prototype__proto","lists__get","field","setter","count","out","_calendar","_longDateFormat","formatUpper","_invalidDate","_ordinal","_relativeTime","pastFuture","source","_monthsShort","monthName","_longMonthsParse","_shortMonthsParse","firstDayOfYear","_weekdays","_weekdaysMin","_weekdaysShort","weekdayName","_weekdaysParse","langData","mathAbs","duration_add_subtract__addSubtract","absCeil","daysToMonths","monthsToDays","makeAs","alias","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","makeGetter","thresholds","substituteTimeAgo","iso_string__abs","iso_string__toISOString","Y","D","total","duration_prototype__proto","monthsFromDays","withSuffix","posNegDuration","duration_humanize__relativeTime","toIsoString","version","invalid","relativeTimeThreshold","threshold","previousUnderscore","_","ArrayProto","ObjProto","FuncProto","nativeIsArray","nativeKeys","keys","nativeBind","bind","nativeCreate","create","Ctor","_wrapped","VERSION","optimizeCb","context","argCount","collection","accumulator","cb","identity","isFunction","isObject","matcher","property","iteratee","Infinity","createAssigner","keysFunc","undefinedOnly","baseCreate","MAX_ARRAY_INDEX","getLength","isArrayLike","createReduce","dir","memo","currentKey","each","forEach","collect","results","reduce","foldl","inject","reduceRight","foldr","find","detect","predicate","findIndex","findKey","filter","select","reject","negate","every","all","some","any","contains","includes","include","item","fromIndex","guard","invoke","method","args","isFunc","pluck","where","attrs","findWhere","computed","lastComputed","shuffle","rand","shuffled","random","sample","sortBy","criteria","sort","left","right","group","behavior","groupBy","has","indexBy","countBy","size","partition","pass","fail","first","head","take","initial","last","rest","tail","drop","compact","flatten","shallow","startIndex","idx","isArguments","createPredicateIndexFinder","createIndexFinder","predicateFind","sortedIndex","without","difference","uniq","unique","isSorted","isBoolean","seen","union","intersection","argsLength","zip","unzip","findLastIndex","low","high","mid","lastIndexOf","range","start","stop","step","executeBound","sourceFunc","boundFunc","callingContext","TypeError","concat","partial","boundArgs","position","bindAll","memoize","hasher","cache","address","delay","wait","setTimeout","defer","throttle","options","timeout","previous","later","leading","remaining","clearTimeout","trailing","debounce","immediate","timestamp","callNow","wrap","wrapper","compose","after","before","once","hasEnumBug","propertyIsEnumerable","nonEnumerableProps","collectNonEnumProps","nonEnumIdx","proto","allKeys","mapObject","pairs","invert","functions","methods","extendOwn","assign","pick","oiteratee","omit","props","tap","interceptor","isMatch","eq","aStack","bStack","className","areArrays","aCtor","bCtor","pop","isEqual","isEmpty","isString","isElement","nodeType","type","Int8Array","isNumber","isNull","isUndefined","noConflict","constant","noop","propertyOf","accum","escapeMap","unescapeMap","createEscaper","escaper","testRegexp","replaceRegexp","escape","unescape","fallback","idCounter","uniqueId","id","templateSettings","evaluate","interpolate","noMatch","escapes","escapeChar","template","settings","oldSettings","variable","render","argument","chain","instance","_chain","mixin","$element","dateFormatId","Configuration","hasPicker","validate","wireupEvents","applyInputMask","applyPicker","$button","hide","dateFormat","change","trigger","on","inputmask","inputMaskOptions","onInputFocus","datetimepicker","datePickerOptions","closest","DateField","pickerButtonSelector","onPickerButtonClicked","preventDefault","show","stopPropagation","stopImmediatePropagation","hasSupportedFormat","_dateFormat","findDateFormat","useCurrent","viewMode","pickerDateFormat","keyBinds","enter","inputMaskFormat","showMaskOnHover","clearIncomplete","yearrange","minyear","maxyear","supportedFormats","$","datefield","$this","jQuery","highlight","node","re","nodeName","document","createElement","capturePos","wordNode","splitText","wordClone","cloneNode","appendChild","parentNode","replaceChild","childNodes","tagName","unhighlight","element","parent","firstChild","normalize","caseSensitive","wordsOnly","wordsBoundary","grep","flag","pattern","wordsBoundaryStart","wordsBoundaryEnd","require$$0","MultiSelectDropdown","wireupDocument","filters","emptyFilter","cacheElements","handleReadonly","onSelectionChanged","findFromCheckbox","$checkbox","popoverId","showSelectedOnly","keywordSearch","$userFacingInput","is","$popoverTrigger","$realInput","onValueSet","$inputDisplay","attr","popover","$popover","$filterInput","$filterButton","$filterButtonIcon","$clearFilters","$itemsContainer","emptyText","isReadonly","openErrorPopover","closeErrorPopover","channel","focusKeywordFilter","removeClass","onFilterChanged","showOrHideItems","$filtered","$matched","Element","deselectAllItems","keyCode","KeyCode","Enter","$selectedItems","selections","el","$el","setRealInput","formatDisplay","$uncheckedMatchedItems","shouldShowUnchecked","styleFilterButton","$checkedCheckboxes","fromElements","x","suppressValueChange","$items","shouldShow","removeAttr","addClass","focus","errorPopover","open","close","selectedValues","$currentlySelected","$selectedItem","selectedCount","display","toggleClass","onItemChecked","multiselectdropdown","option","execute","event","action","HTMLElement","events","unshift","addedEvent","splice","hooks","createUTC","parsedDateParts","rfc2822","weekdayMismatch","parsedParts","isNowValid","isFrozen","createInvalid","fun","t","deprecationHandler","arg","mergeConfigs","parentConfig","childConfig","priorities","addUnitPriority","priority","match3to4","match5to6","matchShortOffset","regexEscape","WEEK","WEEKDAY","set$1","modMonth","o","monthsShortRegex","monthsRegex","MONTHS_IN_FORMAT","handleStrictParse","ii","llc","toLocaleLowerCase","defaultMonthsShortRegex","defaultMonthsRegex","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","firstWeekOffset","fwd","resYear","resDayOfYear","resWeek","weekOffset","weekOffsetNext","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","handleStrictParse$1","_shortWeekdaysParse","_minWeekdaysParse","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","kInput","pos","pos1","pos2","baseConfig","dayOfMonthOrdinalParse","localeFamilies","aliasedRequire","getSetGlobalLocale","getLocale","_config","parentLocale","_overflowWeeks","_overflowWeekday","expectedWeekday","nowValue","weekdayOverflow","createLocal","curWeek","extendedIsoRegex","basicIsoRegex","tzRegex","allowTime","timeFormat","tzFormat","untruncateYear","yearStr","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromRFC2822","monthStr","dayStr","hourStr","minuteStr","secondStr","parsedArray","weekdayStr","checkWeekday","obsOffset","militaryOffset","numOffset","calculateOffset","RFC_2822","getOwnPropertyNames","k","isObjectEmpty","ordering","unitHasDecimal","isDurationValid","absRound","isoRegex","createDuration","addSubtract","monthDiff","defaultFormatUtc","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","_dayOfMonthOrdinalParse","_dayOfMonthOrdinalParseLenient","calendarFormat","localInput","inclusivity","isSameOrAfter","isSameOrBefore","prioritized","unitsObj","getPrioritizedUnits","keepOffset","inspect","suffix","creationData","parseIsoWeekday","keepMinutes","tZone","proto$1","get$1","listMonthsImpl","listWeekdaysImpl","localeSorted","shift","isFormat","_monthsParseExact","_weekdaysParseExact","_fullWeekdaysParse","addSubtract$1","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","proto$2","relativeTime$1","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","isNullOrWhitespace","toBoolean","StringExtensions","equals","date1","date2","addDays","addMonths","toFieldDateString","eventName","bubbles","cancelable","createEvent","initEvent","dispatchEvent","isVisible","offsetWidth","offsetHeight","getClientRects","asJsSelector","asDataSelector","sentenceCase","asAttrSelector","asData","copyFieldBooleanAttributes","$target","attributes","DateExtensions","HTMLElementExtensions","Node","NodeExtensions","toggleShow","condition","ToggleShow","style","originalDisplayValue","readonly","shouldClearValue","EditState","editable","isEditable","toggleReadonly","shouldClearValueOnReadonly","htmlElement","userFacingElement","setAttribute","removeAttribute","hasAttribute","dropDown","flyoutId","getAttribute","querySelector","DEFAULTS","daterangeKey","allowsEmpty","_valueElement","getOptionsFromElement","valueElement","_userFacingElement","setUpPopover","setUpUserFacingElement","SuppressesEvent","setValue","NullableDate","load","dateRangeElement","dateRangeField","DateRangeField","newValue","reset","textContent","Popover","onApply","addEventListener","isOpen","popovers","tryShowErrorPopover","types","Type","All","Today","Last30Days","Last6Months","ThisYear","LastYear","Is","Before","After","Between","dropdown","buildTypeDropdown","wireupEventListeners","onDateFieldChanged","gridUnit","classList","insertBefore","DropDown","flyout","onSelectChanged","canSwichTypeFromBetween","typeValue","update","build","dateRange","shouldShowStart","shouldShowEnd","today","hasValue","januaryFirst","decemberThirtyFirst","_value","ScrollTo","attribute","$container","isInView","scrollTop","top","container","elementRect","getBoundingClientRect","elementTop","elementBottom","height","parentRect","isElementTopBelowParentBottom","bottom","isElementBottomAboveParentTop","scrollto","$searchResults","$selectedResults","$selectedValuesCsv","$searchCount","$selectedCount","selectedItemHiddenInputNameValue","hasGroupItems","refreshSelections","onSelectRow","onRemoveRow","onSelectAll","onRemoveAll","$rows","selectRow","onValueChanged","$row","target","$selectedRow","removeRow","isValueSelected","findAndCloneResultRow","insertRowIntoSelectedItems","handleGroupItemSelectionIfNeeded","$searchResultsGrouping","findSearchResultsGrouping","$searchResultsGroupItem","$selectedResultsGroupItem","findSelectedResultsGrouping","remove","handleGroupItemRemovalIfNeeded","$removedRow","$selectedResultsGrouping","$searchResultRows","rowIsSelected","$groupItem","selectedValuesCsv","findSearchResultRow","appendTo","groupValue","selectedRowText","rows","append","currentRowText","insertAfter","duallistbox","DualListBox","_$element","getType","$userFacingElement","$valueElement","Input","Select","DisplayField","RadioGroup","Checkbox","File","DateRangeDateField","DateRange","MoneyField","GenericElement","addType","selector","$elements","currentValue","SelectSuggestSearch","PhoneField","NameField","AsyncField","msdropdown","wireup","DualListBoxElement","$root","_$userFacingElement","_$valueElement","allowsCustomInput","$option","$childElement","children","$text","$label","prepend","resetFileInput","siblings","$valueInput","$textInput","$value","datePicker","popoverContent","autoNumeric","log","scrollIndex","scrollableContainer","setScrollableContainer","onKeyDown","updateScrollableContainer","KeyboardScrollable","isJQuery","ScrollableContainer","isIScrollableContainer","resetScrollIndex","getSelected","getSelectedElement","$scrollableContainer","keycode","Up","scrollUp","Down","scrollDown","$selected","Escape","keyboardscrollable","setItems","$itemAtScrollIndex","scrollTo","domElement","$item","$parent","JSON","parse","decode","evalJSON","parseJSON","stringify","encode","_ttl_timeout","_storage","__jstorage_meta","CRC32","_storage_service","jStorage","_storage_elm","_storage_size","_backend","_observers","_observer_timeout","_observer_update","_pubsub_observers","_pubsub_last","_XMLService","isXML","elm","documentElement","ownerDocument","xmlNode","XMLSerializer","serializeToString","E1","xml","E2","xmlString","resultXML","dom_parser","DOMParser","parseFromString","ActiveXObject","_xmlString","xml_doc","async","loadXML","_reloadData","E5","E6","_load_storage","_handleTTL","_handlePubSub","_storageObserver","updateTime","jStorage_update","newCrc32List","oldCrc32List","updated","removed","_fireObservers","_checkUpdatedKeys","jlen","_publishChange","E8","save","_save","PubSub","retire","_dropOldEvents","E7","_checkKey","curtime","TTL","nextExpire","changed","deleted","pubelm","_pubsubCurrent","needFired","_fireSubscribers","payload","deleteKey","_is_xml","charCodeAt","murmurhash2_32_gc","setTTL","def","ttl","getTTL","flush","storageObj","F","storageSize","currentBackend","storageAvailable","listenKeyChange","stopListening","subscribe","publish","_publish","reInit","saveInGlobal","localStorageReallyWorks","localStorage","setItem","removeItem","BogusQuotaExceededErrorOnIos5","E3","globalStorage","location","hostname","E4","addBehavior","getElementsByTagName","attachEvent","setInterval","persisted","_init","millisecondsToLive","clear","setChangeListener","removeOnChangeListener","$elementToPosition","setPositionByPoint","point","calculateHeightsAndWidths","setPosition","setPositionCenterScreen","containerWidth","elementWidth","pageYOffset","Storage","containerHeight","elementHeight","css","setPositionByElement","xAlignment","yAlignment","outerHeight","outerWidth","fitsInContainerHeight","fitsInContainerWidth","shouldFlipVertically","shouldFlipHorizontally","newTopAfterFlip","widthOffset","width","ElementPosition","inputsOnlySelector","allElementsSelector","autoFocus","$resolvedContainer","$focus","Focus","focusFirstInput","focusContainer","focusFirstElement","focusFirst","focusLastElement","focusLast","focusLastInput","activeElement","elementId","caretPosition","HTMLInputElement","selectionStart","updatedDomElement","getElementById","selectionEnd","not","alignment","content","validateOptions","$modal","rememberPosition","previousPosition","rememberTitle","previousTitle","rememberPrimaryCaption","previousPrimaryCaption","buildOverlayIfNeeded","buildModalAndAddToDOM","moveOverlayBehindTopMostModal","positionModal","Modal","$globalOverlay","setDefaultFocus","onShown","off","removeModal","hideOrMoveOverlay","onHidden","performDefault","$defaultButton","click","body","draggable","handle","$content","containerClass","modalContent","outerHTML","getSiblingContent","focusGuard","html","modalStack","siblingContent","hasElement","hasVisibleElement","lastTargetPosition","canPositionByPoint","canPositionByElement","topMostModal","peek","detach","current","modal","topModal","title","primaryCaption","wireupDismiss","wireupSubmit","openDisconnectModal","openErrorModal","error","isNotEmpty","unhookDismiss","unhookSubmit","closeIfCanDismissFromOverlay","isDismissableFromOverlay","closeAll","which","ctrlKey","initialize","ModalStack","RequestVerificationToken","$confirmation","$title","$yesButton","$noButton","yesId","yesCaption","noCaption","showOnTarget","modalSize","Confirmation","buildTemplate","applyOptionsToContent","$header","$actions","$primaryActions","onYesClicked","disable","arg1","arg2","AjaxCall","url","beforeRemote","addAntiForgeryToken","confirm","ajax","allowMultipleAjaxCalls","xhr","createXhr","contentType","processData","traditional","dataFilter","state","success","textStatus","jqXHR","Data","RustigRemoteJsCallback","callbackArgs","remoteOptions","$remoteTarget","executeFunctionByName","errorThrown","errorHandled","isWindowUnloading","status","responseText","complete","functionName","throwCallbackError","namespaces","lastFunc","isEnabled","PopOver","closeAllPopOversWithChannel","buildGlobalMenu","getGlobalMenu","$menu","emptyMenu","getOptions","init","mode","openContextMenu","onClickOff","closeAllPopOvers","getDefaults","button","preventBrowserContextMenu","eventTriggeredByMe","eventTriggeredByMyGroup","otherPopoverNoClickSetToMyGroup","$noClickOff","clickInPopover","targetInAction","targetInClickOffOverrideForChannel","targetNoClickSetToMyGroup","popoverTriggeredByFocusAndElementHasFocus","addBack","enable","one","$globalMenu","globalMenuChannels","getContent","done","isCopy","isDetachAndMenuIsEmpty","pageY","pageX","placement","sizeMenu","sizing","$children","namespace","setElement","setGroupId","setUpDisabledAndReadonlyFunctionality","buildPopover","wireupSearchField","wireupKeyboardListeners","configureToBehaveLikeSelect","groupId","isDisabled","SelectableListPopover","setOnHidden","selectedHasBeenSet","searchField","fetchSuggestions","isSelect","Ajax","onSuccess","getData","searchText","buildSuggestions","$selectValueInput","addSuggestion","buildSelectListItem","suggestionWithText","$suggestion","isSelected","wireupMouseClickForSuggestion","addItem","onSelectByMouseClick","setSelected","clearValueForInputsInGroup","clearSuggestionsAndSelectionCache","selectedIndex","setValueForInputsInGroup","cacheSuggestionsAndSelection","$hasKey","textValue","valueValue","fieldsIncludedInSearch","fieldName","onSelectByKeyboard","selected","onEscapePressed","Tab","setOnHide","popoverIsClearing","createDropdownButton","onButtonClick","restoreSuggestionsAndSelection","$suggestionItems","$suggestSearchPopoverContent","rootClass","createPopover","$temp","_isOpen","buildKeyboardScrollableOptions","keyboardScrollable","isClearing","suggestsearch","SuggestSearch","formatTextIfNumber","toLocaleString","currency","maximumFractionDigits","minimumFractionDigits","relativeName","formatMoney","money","guid","s4","isBlankItem","isBlank","excludeKeys","unwrappedValue","unwrapObservable","addRow","numRowsToAdd","focusOnNewRow","currentRowCount","Rows","emptyObject","editorTableInternalId","Utility","emptyObjectBuilder","$table","tableKey","cellId","toValueBinding","binding","dataName","dataValue","bindingName","bindTo","toCellBinding","createEmptyValue","toBehaviorBinding","getRow","canBuild","templateRow","rowToClone","cloneRow","contents","TemplateRow","CloneRow","initialValue","rawValue","read","v","write","getElements","row","getBinding","cell","cellName","NullableTextObservable","rustigDate","valueAccessor","bindingsAccessor","viewModel","selectName","NullableNumericObservable","pF","aSign","vMin","mDec","numericValue","unwrapped","formattedValue","NullableMoneyObservable","autoMoney","inputName","valueName","columnNumber","targetCell","parents","rowData","compute","rd","ExpressionBinder","rewriteComputeExpression","expression","propertyName","bracketsOpen","EnterKeyBinder","inputSelector","currentTarget","rowIndex","enterKey","shiftKey","moveTo","highlightSelection","er","currentCell","tbody","columnIndex","RemovedRows","remoteKeys","dataKeysToSend","dataToSend","_key","remote","lastItem","addRowClass","checkbox","isChecked","table","checkboxIndex","pojo","JsonBuilder","deleteEmptyArrayItems","setExcludeKeys","toJsonFunc","cleanedArr","rewrite","tableData","isDirty","initialized","initialTableData","slideDown","slideUp","beforUnloadEvent","isBound","valueBinders","behaviorBinders","externalBinders","registerBinders","isEditorTable","TemplateRowFactory","bindRows","bindRootValues","bindRootBehavior","bindExternal","binders","binder","BindingConverter","EditorTable","inTable","addBindingToElement","isInitialized","$templateRow","rowNumber","$cell","dataExtension","notifySubscribers","DateInputBinder","SelectBinder","NumericInputBinder","MoneyInputBinder","TextInputBinder","HiddenInputBinder","CheckboxInputBinder","ColumnTotalBinder","RowCountBinder","RemoveRowBinder","RemoteOnChangeBinder","AutoGrowBinder","AddRowBinder","CheckAllBinder","ForEachBinder","ToJSONBinder","ExternalJsonBinder","ExternalTrackChangesHideBinder","ExternalNavigationWarning","currentBinding","finalBinding","bindingValue","eventClosingBracketPosition","newBinding","editortable","registerHandler","handlers","handler","FormValidation","handleErrors","_this","$errors","$error","popoverOptions","$targetInput","targetId","message","clearErrorOptions","addValidationClass","$existingPopover","resultClearErrorOptions","determineClearErrorBehavior","clearErrorWireups","triggerEvents","removeErrorState","onErrorPopoverDisabled","validationClass","$defaultTarget","defaultClearErrorBehavior","$popoverElement","defaultWireup","matchIndex","rowNum","lastDot","columnName","inputCell","displayCell","EditorTableErrorPopover","ErrorPopover","editortable_validation","Validation","Remote","triggerWireup","$triggeringEvent","FileInput","_droppedFiles","droppedFiles","storeDroppedFile","storeDroppedFiles","file","files","addStagedFile","stagedFiles","handleStagedFiles","$context","handledFlag","preserveFlag","clearStagedFiles","setInputs","fileInfo","fileData","inputFlag","$input","FileInputInfo","fileinput","$form","droppedFile","hasFileDrop","elementIsFormOrSubmitable","formData","hasFileInputs","form","$self","toggleEnabled","shouldClearValueOnDisable","additionalValues","formattedKey","isInForm","findForm","isSubmit","addOrUpdateHiddenInputForSubmitButton","serializeFormToJSON","transformJsonToString","$result","hasRemoteTargetForm","targetFormId","serializeArray","acc","currentProperty","jsonObject","encodeURIComponent","targetIsAnchor","RemoteTriggerHandler","FileDropRemoteHandler","FileUploadFormRemoteHandler","SwitchRemoteHandler","EditorTableFieldChangeRemoteHandler","SingleInputRemoteHandler","FormInputRemoteHandler","SelectRemoteHandler","NestedAnchorRemoteHandler","DefaultRemoteHandler","HandlerFactory","_options","ex","wireupTriggers","$contextElement","callRemote","toJson","nodes","$jsTree","treeOptions","setOptions","findInput","createTree","setSelectedValues","checkedIds","jstree","JsTreeConfig","treeinput","TreeInput","$globalContainer","calculateAddressFromZipcode","$addressLoader","zipCode","onAddressOptionsCalculatedFromZipcode","cityOptions","city","countyOptions","county","AddressLoader","birthDate","birthYear","birthMonth","birthDay","age","monthDifference","isBeforeBirthMonth","isSameMonthButBeforeBirthday","inputValue","ageValue","birthdate","Age","Years","Alert","flashSaveSuccessful","flash","hasCustomContainer","$messageContainer","fadeOut","alertMessage","AlertStorageKey","Dropzone","Emitter","camelize","contentLoaded","detectVerticalSquash","drawImageIOSFix","__slice","__hasProp","_callbacks","emit","callbacks","_len","removeListener","removeAllListeners","removeEventListener","_super","resolveOption","elementOptions","_ref","defaultOptions","previewTemplate","clickableElements","listeners","dropzone","instances","optionsForElement","forceFallback","isBrowserSupported","acceptedFiles","acceptedMimeTypes","getExistingFallback","removeChild","previewsContainer","getElement","previewsContainerPrepend","clickable","child","ctor","__super__","__extends","withCredentials","parallelUploads","uploadMultiple","maxFilesize","paramName","createImageThumbnails","maxThumbnailFilesize","thumbnailWidth","thumbnailHeight","thumbnailSquare","filesizeBase","maxFiles","params","ignoreHiddenFiles","autoProcessQueue","autoQueue","addRemoveLinks","hiddenInputContainer","capture","renameFilename","dictDefaultMessage","dictFallbackMessage","dictFallbackText","dictFileTooBig","dictInvalidFileType","dictResponseError","dictCancelUpload","dictCancelUploadConfirmation","dictRemoveFile","dictRemoveFileConfirmation","dictMaxFilesExceeded","accept","messageElement","span","innerText","getFallbackForm","resize","info","srcRatio","trgRatio","srcX","srcY","srcWidth","srcHeight","optWidth","optHeight","ratio","trgHeight","trgWidth","dragstart","dragend","dragenter","dragover","dragleave","paste","addedfile","removeFileEvent","removeLink","_j","_k","_len1","_len2","_ref1","_ref2","_results","previewElement","querySelectorAll","_renameFilename","innerHTML","_removeLink","UPLOADING","removeFile","removedfile","_updateMaxFilesReachedClass","thumbnail","dataUrl","thumbnailElement","alt","src","errormultiple","processing","processingmultiple","uploadprogress","progress","bytesSent","totaluploadprogress","sending","sendingmultiple","successmultiple","canceled","canceledmultiple","completemultiple","maxfilesexceeded","maxfilesreached","queuecomplete","addedfiles","objects","getAcceptedFiles","accepted","getRejectedFiles","getFilesWithStatus","getQueuedFiles","QUEUED","getUploadingFiles","getAddedFiles","ADDED","getActiveFiles","noPropagation","setupHiddenFileInput","hiddenFileInput","visibility","addFile","URL","webkitURL","updateTotalUploadProgress","returnValue","efct","dataTransfer","effectAllowed","_error","dropEffect","clickableElement","evt","elementInside","updatePreviewContainer","previewContainer","addClickableElement","effect","addElementAsDragAndDropArea","dragDropClass","destroy","removeAllFiles","totalBytes","totalBytesSent","totalUploadProgress","upload","_getParamName","existingFallback","fields","fieldsString","getFallback","elements","setupEventListeners","elementListeners","listener","_results1","removeEventListeners","cancelUpload","selectedSize","selectedUnit","clipboardData","_addFilesFromItems","handleFiles","entry","webkitGetAsEntry","isFile","getAsFile","isDirectory","_addFilesFromDirectory","kind","directory","path","dirReader","errorHandler","readEntries","createReader","entries","fullPath","isValidFile","_enqueueThumbnail","_errorProcessing","enqueueFile","initExistingFile","SUCCESS","enqueueFiles","processQueue","_thumbnailQueue","_processingThumbnail","_processThumbnailQueue","createThumbnail","cancelIfNecessary","fileReader","FileReader","onload","createThumbnailFromUrl","readAsDataURL","imageUrl","crossOrigin","img","canvas","ctx","resizeInfo","_ref3","getContext","trgX","trgY","toDataURL","onerror","processingLength","queuedFiles","processFiles","processFile","uploadFiles","_getFilesWithXhr","groupedFile","groupedFiles","CANCELED","abort","uploadFile","handleError","headerName","headerValue","headers","inputType","response","updateProgress","_len3","_m","_ref4","_ref5","XMLHttpRequest","allFilesFinished","loaded","readyState","getResponseHeader","_finished","onprogress","setRequestHeader","FormData","checked","submitRequest","send","ERROR","forElement","autoDiscover","discover","checkElements","dropzones","blacklistedBrowsers","capableBrowser","FileList","Blob","navigator","userAgent","rejectedItem","div","els","question","rejected","baseMimeType","mimeType","validType","ACCEPTED","PROCESSING","ey","ih","py","sy","naturalWidth","naturalHeight","drawImage","getImageData","sx","sw","sh","dx","dy","dw","dh","vertSquashRatio","win","doc","poll","pre","rem","doScroll","createEventObject","frameElement","_autoDiscoverFunction","$dropzone","$previewContainer","uploadPreserverId","$uploadPreserver","createUploadPreserver","updateDropzone","initFile","getAllFiles","getDefaultOptions","optionCallbacks","ThumbnailUpload","dropzonePreserver","prependAttribute","getPreviewTemplate","getDefaultPreviewTemplate","$thumbnail","removeDragHoverClass","addDragHoverClass","onFileAdded","onCanceled","onSending","onSendingMultiple","onUploadComplete","onError","errorMessage","onThumbnailGenerated","$previewTemplateContainer","uploadSuccess","uploadError","tuUploading","thumbnailRemove","thumbnailId","Application","wireupConventions","addFormData","thumbnailIds","tuEmpty","getServerResponseFor","replaceWith","errorText","onUploadError","serverId","onUploadSuccess","removeElementAndClickDropzone","removeThumbnail","addServerIdToElements","replaceDropzoneRemoveWithRemoveAction","addServerIdToUrlAttribute","addQueryParamToUrl","removeUrl","$removeElement","$previewContainerPrepend","addUploadingAndQueuedFilesToDropzone","$prepend","thumbnailupload","protocol","host","port","queryParameters","hash","parseUrl","setProtocol","setHost","setPort","setPath","setQueryParameter","encodedValues","removeQueryParameter","getQueryParameter","setHash","toUrl","querystring","createQueryString","href","pathname","getQueryParameters","search","queryString","queryParams","pair","bytes","Kilobyte","Megabyte","Gigabyte","_bytes","FormatsFileSize","gigabytes","megabytes","kilobytes","fileName","withExtension","withoutExtension","extension","fileTypes","filename","FileName","$queryParameters","recordState","currentState","history","_querystring","queryStringsMatch","replaceState","pushState","onStateChange","Url","createHistory","BrowserHistory","$toggle","$drawer","addCssFooterStateIfNeeded","toggle","$overlay","isClosed","Drawer","drawer","filedragout","completeUrl","downloadurl","originalEvent","setData","fillwindow","newSize","thisTop","footerSelector","footerSize","$footer","ajaxComplete","showMoreRows","Items","Count","refreshPageData","FilterTabs","TraditionalPager","Search","OnRemotePageUpdate","toggleMultiSelect","TableHeading","TitleButtons","ActionMenu","ListView","paceOptions","trackMethods","ignoreURLs","trackWebSockets","startOnPageLoad","restartOnRequestAfter","AjaxMonitor","Bar","DocumentMonitor","ElementMonitor","ElementTracker","EventLagMonitor","Evented","Events","NoTargetError","Pace","RequestIntercept","SOURCE_KEYS","Scaler","SocketRequestTracker","XHRRequestTracker","animation","avgAmplitude","bar","cancelAnimation","cancelAnimationFrame","extendNative","getFromDOM","getIntercept","handlePushState","ignoreStack","requestAnimationFrame","runAnimation","scalers","shouldIgnoreURL","shouldTrack","sources","uniScaler","_WebSocket","_XDomainRequest","_XMLHttpRequest","_intercept","_pushState","_replaceState","__indexOf","catchupTime","initialRate","minTime","ghostTime","maxProgressPerFrame","easeFactor","restartOnPushState","checkInterval","selectors","eventLag","minSamples","sampleCount","lagThreshold","performance","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","mozCancelAnimationFrame","tick","sum","json","_base","bindings","targetElement","finish","prog","progressStr","transform","lastRenderedProgress","XDomainRequest","WebSocket","defineProperty","configurable","enumerable","ignore","track","monitorXHR","req","_open","request","protocols","_arg","running","restart","watch","tracker","_onreadystatechange","ProgressEvent","lengthComputable","onreadystatechange","check","states","loading","interactive","avg","interval","points","samples","clearInterval","sinceLastUpdate","catchup","lastProgress","frameTime","scaling","extraSources","go","enqueueNextFrame","scaler","scalerList","startOn","stopLoading","getUrlAttribute","isDisabledKey","isRowSelected","selectRowElement","$popoverContent","queryParameterName","addIdsToUrl","Humanizer","tryEnable","removeIdsFromUrl","allSelected","anySelected","validateMarkup","koInit","initializeJsonValues","isSelectAll","onSelectAllChanged","isMultiSelect","RustigElement","updateAll","selectAll","removeAll","onSelectedChanged","isSelectAllChecked","selectAllElement","textIsHighlighted","getSelection","$selector","wasSelected","removeData","refresh","$count","rCount","isInput","createBinders","ids","initialJson","multiselecttable","MultiSelectTable","multiselecttablerow","buildOverlay","loadPhotos","onPhotoClick","setEscapeKeyToClosePhotoViewer","AddPhoto","photos","Photo","RemovePhoto","photo","getPhoto","PhotoViewerGlobalOverlay","$photosContainer","closeOverlay","viewPrevious","viewNext","showing","downloadPhoto","keyup","$photo","downloadUrl","openOverlay","updateShowing","photoName","photoviewer","PhotoViewer","$grid","$nameContainer","$name","$buttonsContainer","$tbGroup","resizePhotosContainer","_downloadUrl","$fullImageContainer","$statusContainer","downloadAttempted","downloadForViewer","urlThatPreventsCaching","$image","photoSize","PhotoSize","getPhotoSizeScaledToFitContainer","$retryContainer","image","imageHeight","imageWidth","dependency","Dependency","_id","_name","shouldPreventPopover","shouldPreventErrorClass","dependents","getDependents","$validationErrorElement","getValidationErrorElement","onChange","removeMessageFor","dependent","$message","getPopoverMessage","cachePopoverMessage","hasValidationError","addMessageFor","messageAlreadyExists","appendPopoverMessage","$validationElement","$dependents","Dependent","buildValidationMessage","validationMessage","isCheckbox","isRadio","dependentName","dependentValidator","dependentValidatorAttribute","dependencyValidator","dependencyValidatorAttribute","_validationMessage","validationMessageAttribute","shouldDisableDependentWhileValidationError","shouldDisableAttribute","_hasValidationError","dependentPassesValidation","dependencyPassesValidation","realtimevalidation","RealTimeValidation","$textArea","CKEDITOR","richtext","RichText","sfDelay","$filterElement","isPartOfSearchForm","hasCustomAction","resolveTargetForm","$searchForm","hasTargetForm","$targetForm","remoteDataFilter","getDefaultDataFilter","getsCurrentValue","actionEventName","determineEventName","formDebounceFunction","doAction","debouncedDoAction","valueChanged","$formInputs","$dataForm","addInputToData","addsNameOverridesToFormData","filterId","SearchField","targetFormSelector","actions","sfTrigger","isDateField","triggersFromChangeEvent","$tabs","selectedTabClass","selectTab","selectInitialTab","applyErrors","$tab","tabId","findContent","addErrorIconToTab","findTab","$errorIcon","$tabIcon","$allTabs","$selectedTabs","Tabs","tabs","ThumbnailDownloader","attributeKey","trySetThumbnailFromCache","downloadThumbnail","setSrc","setThumbnail","shouldCacheThumbnail","thumbnaildownloader","command","getDataOptions","ToggleState","initAttributes","toggleAll","newState","setProperty","validateTriggerEvent","maxHeight","isLink","isRemote","togglestate","openModal","modalOptions","anchorOnRemoteTarget","ActionResult","isCurrentModalConfirmation","closeModal","closeModalById","modalId","handleNavigationWarning","refreshAndFlashAlert","flashAlert","containerSelector","storeAlertAndCloseModals","reload","redirect","remoteRequest","notImplemented","refreshContent","updateHtml","replaceContent","replaceValue","shouldSuppressValueChanged","replaceCallbackValue","appendContent","$html","prependContent","refreshDropdownListItems","shouldPreserveUserInput","replaceHtml","createMapOfInputFieldIds","shouldPreserveValidationErrors","mapInputFieldIdsToValues","renameThumbnail","shouldReplaceTag","triggerEvent","Event","inputFields","InputFieldMapper","mapToInput","suppressNavigationWarning","$inputField","hasClass","$inputToMapTo","configureId","scheduleRemoteRequest","cancelPreviousTimeoutIfNeeded","executeFunc","executeClick","executeRemote","timeoutId","storeTimeout","timeoutDataAttribute","autorequest","AutoRequest","autosaveOn","autosaveOnTargets","autosave","isRemoting","setShowAlertIfNavigatingFromPageWithUnsavedChanges","clearAutosaveDebounce","hasUnsavedChanges","Autosave","fileUrl","isAvailableUrl","ui","retryDuration","isRetryTimedOut","api","Api","view","loadPreview","isPdfAvailable","checkForPdf","renderFailed","displayDocument","$ui","$spinner","$loading","$failed","PdfUrlBuilder","frame","scr","screen","availWidth","availHeight","availLeft","availTop","$frame","pollUrl","DefaultDocumentViewUi","DocumentDataPoll","DocumentViewer","documentviewer","ErrorMessage","resetValidity","handleInvalid","setValidity","setCustomValidity","eventListener","eventListenerBinding","eventListenerEmptyMessage","setText","storageValue","eventlistener","EventListener","notifyOn","EventNotifier","wireupName","setEventListener","subject","eventnotifier","emptySelector","FilterItems","selectedClass","mapped","optionMap","filterItems","$itemList","filterText","escapeRegExp","lowestSearchIndex","selectIndex","$matches","searchIndex","triggerOnFilter","showMatches","hideFiltered","setSelectedItem","triggerOnFiltered","highlightFilter","onFilterData","onFilteredData","fiSelectedClass","filteritems","reorder","nameLeftOver","nameReplacements","idLeftOver","idReplacements","reverse","nameFinal","idFinal","ListBinding","_window","navigateToUrl","HandlesWindowNavigation","navigate","Navigate","optional","notOptional","isOptional","isNotOptional","toggleOptional","eventData","removeWhat","required","notRequired","isRequired","isNotRequired","toggleRequired","prev","createLink","configureMutationObserver","tryApplyLink","observer","disconnect","applyLink","observe","mutationConfig","Text","aNode","aNodeText","aNodeTextClone","nextSibling","hasChildNodes","isStyleOrScriptElement","nodeAddedHandler","MutationObserver","mutationsList","addedNodes","childList","subtree","transformtexttolink","TransformTextToLink","bindOn","bindFrom","bindBehavior","nullToken","bindToMap","ValueBinding","suppressedKey","bindFromMap","setGetValue","setSetValue","bindEvent","targets","isFalseBool","bindWith","getValue","hasSuppressedBindTo","endsWith","valuebinding","hidden","visible","isHidden","toggleVisible","value1","value2","convention","conventions","triggerConventionsReady","conventionsReady","Execute","oldSlideUp","oldSlideDown","oldHtml","r","oldReplaceWith","newElement","msMatchesSelector","webkitMatchesSelector","parentElement","this_len","resolve","promise","remotePopover","RemotePopOver","tableHeight","autoheighttable","AutoHeightTable","$checkboxField","$field","$datefield","$key","DateExpression","sourceSelector","registerEvents","eventString","onInputChange","sourceValue","targetSelector","dateexpression","resolveContext","$hasChanges","rElement","expressionKeys","keyElements","sumElement","$nameField","$errorRollUp","FieldValidationHandler","middle","PersonName","prefixes","lastNamePrefixes","suffixFollowsComma","commaIndex","afterComma","findWord","isFormalForm","beforeComma","extractPrefix","extractSuffix","testWord","extractFirstNameSingleCharacter","isLastNamePrefix","trimDot","extractMiddleInitial","parseFormal","isInitial","isFirst","foundLastToken","firstWords","lastWords","parseInformal","isEqualIgnoreCase","foundPrefix","foundSuffix","testword","localeCompare","sensitivity","nocomma","joinNotNullOrWhitespace","formatInformal","$phoneField","iframe","contentWindow","execCommand","print","$radioField","$guard","wireUpFileDragAndDrop","dragAndDropUploadElement","dragAndDropUpload","DragAndDropUpload","fileFieldsContainer","fileFields","fileDragAndDrop","onFileDrop","$dropArea","fileCount","$dropdownField","$select","$dateRangeField","$asyncFileField","registerDefaults","Polyfills","Patches","Rustig","AsyncFileField","onbeforeunload","RUSTIG_OPTIONS","PhoneValidationHandler","NameValidationHandler","RadioValidationHandler","CheckboxValidationHandler","DropdownValidationHandler","DateRangeValidationHandler","AsyncFileValidationHandler","MultiSelectDropdownValidationHandler","nameField","phoneField","moneyField","numberField","percentField","nav","FileDragOut","dropdowntree","asyncfilefield","AgeField","ItemList","ToggleValue","ReadonlyIf","ShowIf","KeyboardFocusBounds","MathExpressions","PrintPreview","HasChanges","initializeElements","setOnClickListeners","initializeDocumentUploader","setState","$hiddenId","uploader","$hiddenFilename","cancelUploadInProgress","clearInput","setUploadCompleteState","$hiddenLength","$fileChooser","preUpload","dropElementSelector","onValidationComplete","preUploadInvalidFileMessage","asyncFileField","fileIsValid","onCancel","cancelsKey","fileBeingUploaded","BuildsExtensionIcon","FileSize","cancelCompletedUpload","enableLinkedElements","buildsRemoveUrl","disableLinkedElements","disablesKey","numberOfFilesUploading","cannotUploadAnymoreFiles","uniq_prefix","random_value","iframes","BroadcastChannel","getItem","is_iframe","sysend","broadcast","postMessage","send_to_iframes","proxy","border","proxy_url"],"sourceRoot":""}