{"version":3,"file":"Serenity.CoreLib.js","sources":["../Q/Arrays.ts","../Q/Strings.ts","../Q/LocalText.ts","../node_modules/tslib/tslib.es6.js","../Q/System.ts","../Q/Notify.ts","../Q/Config.ts","../Q/Html.ts","../Q/Dialogs.ts","../Q/ErrorHandling.ts","../Q/BlockUI.ts","../Q/Services.ts","../Q/Formatting.ts","../Q/ScriptData.ts","../Q/Authorization.ts","../Q/Debounce.ts","../Q/LayoutTimer.ts","../Q/Lookup.ts","../Q/Validation.ts","../Q/ValidateOptions.ts","../Q/Router.ts","../UI/Helpers/LazyLoadHelper.ts","../Q/Layout.ts","../Decorators/index.ts","../Interfaces/IBooleanValue.ts","../Interfaces/IDoubleValue.ts","../Interfaces/IDialog.ts","../Interfaces/IEditDialog.ts","../Interfaces/IGetEditValue.ts","../Interfaces/IReadOnly.ts","../Interfaces/ISetEditValue.ts","../Interfaces/IStringValue.ts","../Interfaces/IValidateRequired.ts","../Services/Criteria.ts","../Types/ReflectionUtils.ts","../Types/DialogTypeRegistry.ts","../Types/EditorTypeRegistry.ts","../Types/EnumTypeRegistry.ts","../UI/Widgets/PrefixedContext.ts","../UI/Widgets/Widget.ts","../UI/Widgets/TemplatedWidget.ts","../UI/Helpers/SubDialogHelper.ts","../UI/Helpers/UploadHelper.ts","../UI/Widgets/Toolbar.ts","../UI/Editors/EditorUtils.ts","../UI/Editors/CascadedWidgetLink.ts","../UI/Helpers/ValidationHelper.ts","../UI/Widgets/TemplatedPanel.ts","../UI/Helpers/TabsExtensions.ts","../UI/Widgets/ReflectionOptionsSetter.ts","../UI/Widgets/PropertyGrid.ts","../UI/Widgets/PropertyPanel.ts","../UI/Editors/StringEditor.ts","../UI/Editors/PasswordEditor.ts","../UI/Editors/TextAreaEditor.ts","../UI/Editors/BooleanEditor.ts","../UI/Editors/DecimalEditor.ts","../UI/Editors/IntegerEditor.ts","../UI/Editors/DateEditor.ts","../UI/Editors/DateTimeEditor.ts","../UI/Editors/TimeEditor.ts","../UI/Editors/EmailEditor.ts","../UI/Editors/EmailAddressEditor.ts","../UI/Editors/URLEditor.ts","../UI/Editors/RadioButtonEditor.ts","../UI/Editors/Select2Editor.ts","../UI/Editors/SelectEditor.ts","../UI/Editors/DateYearEditor.ts","../UI/Editors/EnumEditor.ts","../UI/Editors/LookupEditor.ts","../UI/Editors/ServiceLookupEditor.ts","../UI/Editors/HtmlContentEditor.ts","../UI/Editors/MaskedEditor.ts","../UI/Editors/Recaptcha.ts","../UI/Editors/UploadEditors.ts","../UI/DataGrid/QuickFilterBar.ts","../UI/DataGrid/QuickSearchInput.ts","../UI/Widgets/Flexify.ts","../UI/Dialogs/DialogExtensions.ts","../UI/Dialogs/TemplatedDialog.ts","../UI/Dialogs/PropertyDialog.ts","../UI/Dialogs/EntityDialog.ts","../UI/Filtering/FilterOperator.ts","../UI/Filtering/FilterStore.ts","../UI/Filtering/Filtering.ts","../UI/Filtering/FilterWidgetBase.ts","../UI/Filtering/FilterPanel.ts","../UI/Filtering/FilterDialog.ts","../UI/Filtering/FilterDisplayBar.ts","../UI/DataGrid/SlickPager.ts","../UI/Formatters/Formatters.ts","../UI/Helpers/SlickHelpers.ts","../Slick/RemoteView.ts","../UI/DataGrid/DataGrid.ts","../UI/DataGrid/ColumnPickerDialog.ts","../UI/DataGrid/EntityGrid.ts","../UI/DataGrid/TreeGridMixin.ts","../UI/Editors/CheckTreeEditor.ts","../UI/Widgets/Reporting.ts","../UI/Editors/AsyncLookupEditor.ts","../UI/Widgets/ScriptContext.ts","../Interfaces/IAsyncInit.ts","../UI/Widgets/WX.ts","../UI/Widgets/GoogleMap.ts","../UI/Editors/Select2AjaxEditor.ts","../Slick/Aggregators.ts","../Patch/jQueryPatch.ts","../Patch/PromisePatch.ts","../Patch/VuePatch.ts","../CoreLib.ts"],"sourcesContent":["export type Grouping = { [key: string]: TItem[] };\r\n\r\n/**\r\n * Tests if any of array elements matches given predicate\r\n */\r\nexport function any(array: TItem[], predicate: (x: TItem) => boolean): boolean {\r\n for (let x of array)\r\n if (predicate(x))\r\n return true;\r\n\r\n return false;\r\n}\r\n\r\n/**\r\n * Counts number of array elements that matches a given predicate\r\n */\r\nexport function count(array: TItem[], predicate: (x: TItem) => boolean): number {\r\n let count = 0;\r\n for (let x of array)\r\n if (predicate(x))\r\n count++;\r\n\r\n return count;\r\n}\r\n\r\n/**\r\n * Gets first element in an array that matches given predicate.\r\n * Throws an error if no match is found.\r\n */\r\nexport function first(array: TItem[], predicate: (x: TItem) => boolean): TItem {\r\n for (let x of array)\r\n if (predicate(x))\r\n return x;\r\n\r\n throw new Error(\"first:No element satisfies the condition.!\");\r\n}\r\n\r\n/**\r\n * Gets index of first element in an array that matches given predicate\r\n */\r\nexport function indexOf(array: TItem[], predicate: (x: TItem) => boolean): number {\r\n for (var i = 0; i < array.length; i++)\r\n if (predicate(array[i]))\r\n return i;\r\n\r\n return -1;\r\n}\r\n\r\n/**\r\n * Inserts an item to the array at specified index\r\n */\r\nexport function insert(obj: any, index: number, item: any): void {\r\n if (obj.insert)\r\n obj.insert(index, item);\r\n else if (Object.prototype.toString.call(obj) === '[object Array]')\r\n obj.splice(index, 0, item);\r\n else\r\n throw new Error(\"Object does not support insert!\");\r\n}\r\n\r\n/**\r\n * Determines if the object is an array\r\n */\r\nexport function isArray(obj: any): boolean {\r\n return Object.prototype.toString.call(obj) === '[object Array]';\r\n}\r\n\r\n/**\r\n* Gets first element in an array that matches given predicate.\r\n* Throws an error if no matches is found, or there are multiple matches.\r\n*/\r\nexport function single(array: TItem[], predicate: (x: TItem) => boolean): TItem {\r\n let match: any;\r\n let found = false;\r\n for (let x of array)\r\n if (predicate(x)) {\r\n if (found)\r\n throw new Error(\"single:sequence contains more than one element.\");\r\n\r\n found = true;\r\n match = x;\r\n }\r\n\r\n if (!found)\r\n throw new Error(\"single:No element satisfies the condition.\");\r\n\r\n return match;\r\n}\r\n\r\n/**\r\n * Maps an array into a dictionary with keys determined by specified getKey() callback,\r\n * and values that are arrays containing elements for a particular key.\r\n */\r\nexport function toGrouping(items: TItem[], getKey: (x: TItem) => any): Grouping {\r\n let lookup: Grouping = {};\r\n for (let x of items) {\r\n let key = getKey(x) || \"\";\r\n let d = lookup[key];\r\n if (!d) {\r\n d = lookup[key] = [];\r\n }\r\n\r\n d.push(x);\r\n }\r\n return lookup;\r\n}\r\n\r\n\r\nexport type Group = {\r\n order: number;\r\n key: string;\r\n items: TItem[];\r\n start: number;\r\n}\r\n\r\nexport type Groups = {\r\n byKey: { [key: string]: Group };\r\n inOrder: Group[];\r\n};\r\n\r\n/**\r\n * Groups an array with keys determined by specified getKey() callback.\r\n * Resulting object contains group objects in order and a dictionary to access by key.\r\n */\r\nexport function groupBy(items: TItem[], getKey: (x: TItem) => any): Groups {\r\n let result: Groups = {\r\n byKey: Object.create(null),\r\n inOrder: []\r\n };\r\n\r\n for (var index = 0; index < items.length; index++) {\r\n var item = items[index];\r\n let key = getKey(item) ?? \"\";\r\n var group = result.byKey[key];\r\n if (group === undefined) {\r\n group = {\r\n order: result.inOrder.length,\r\n key: key,\r\n items: [item],\r\n start: index\r\n }\r\n result.byKey[key] = group;\r\n result.inOrder.push(group);\r\n }\r\n else {\r\n group.items.push(item);\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\n/**\r\n * Gets first element in an array that matches given predicate.\r\n * Returns null if no match is found.\r\n */\r\nexport function tryFirst(array: TItem[], predicate: (x: TItem) => boolean): TItem {\r\n for (let x of array)\r\n if (predicate(x))\r\n return x;\r\n}","export function endsWith(s: string, suffix: string): boolean {\r\n if (String.prototype.endsWith)\r\n return s.endsWith(suffix);\r\n\r\n if (suffix == null)\r\n return false;\r\n \r\n if (!suffix.length)\r\n return true;\r\n if (suffix.length > s.length)\r\n return false;\r\n return (s.substr(s.length - suffix.length) == suffix);\r\n}\r\n\r\nexport function isEmptyOrNull(s: string) {\r\n return s == null || s.length === 0;\r\n}\r\n\r\nexport function isTrimmedEmpty(s: string) {\r\n return trimToNull(s) == null;\r\n}\r\n\r\nexport function padLeft(s: string | number, len: number, ch: string = ' ') {\r\n if ((s as any).padStart)\r\n return (s as any).padStart(len, ch);\r\n s = s.toString();\r\n while (s.length < len)\r\n s = ch + s;\r\n return s;\r\n}\r\n\r\nexport function startsWith(s: string, prefix: string): boolean {\r\n if (String.prototype.startsWith)\r\n return s.startsWith(prefix);\r\n\r\n if (prefix == null)\r\n return false;\r\n\r\n if (!prefix.length)\r\n return true;\r\n if (prefix.length > s.length)\r\n return false;\r\n return (s.substr(0, prefix.length) === prefix);\r\n}\r\n\r\nexport function toSingleLine(str: string) {\r\n return replaceAll(replaceAll(trimToEmpty(str), '\\r\\n', ' '), '\\n', ' ').trim();\r\n}\r\n\r\nexport var trimEnd = function(s: string) {\r\n return s.replace(/\\s*$/, '');\r\n};\r\n\r\nexport var trimStart = function(s: string) {\r\n return s.replace(/^\\s*/, '');\r\n};\r\n\r\nexport function trim(s: string) {\r\n if (s == null)\r\n return '';\r\n return s.replace(new RegExp('^\\\\s+|\\\\s+$', 'g'), '');\r\n}\r\n\r\nexport function trimToEmpty(s: string) {\r\n if (s == null || s.length === 0)\r\n return '';\r\n\r\n return trim(s);\r\n}\r\n\r\nexport function trimToNull(s: string) {\r\n s = trim(s);\r\n if (s.length === 0)\r\n return null;\r\n return s;\r\n}\r\n\r\nexport function replaceAll(s: string, f: string, r: string): string {\r\n s = s || '';\r\n return s.split(f).join(r);\r\n}\r\n\r\nexport function zeroPad(n: number, digits: number): string {\r\n let s = n.toString();\r\n while (s.length < digits)\r\n s = \"0\" + s;\r\n return s;\r\n}","import { isEmptyOrNull, startsWith } from \"./Strings\";\r\n\r\nexport function text(key: string): string {\r\n let t = LT.$table[key];\r\n if (t == null) {\r\n t = key || '';\r\n }\r\n return t;\r\n}\r\n\r\nexport function dbText(prefix: string): ((key: string) => string) {\r\n return function (key: string) {\r\n return text(\"Db.\" + prefix + \".\" + key);\r\n }\r\n}\r\n\r\nexport function prefixedText(prefix: string) {\r\n\r\n return function (text: string, key: string | ((p?: string) => string)) {\r\n\r\n if (text != null && !startsWith(text, '`')) {\r\n var local = tryGetText(text);\r\n if (local != null) {\r\n return local;\r\n }\r\n }\r\n\r\n if (text != null && startsWith(text, '`')) {\r\n text = text.substr(1);\r\n }\r\n\r\n if (!isEmptyOrNull(prefix)) {\r\n var textKey = typeof (key) == \"function\" ? key(prefix) : (prefix + key);\r\n var localText = tryGetText(textKey);\r\n if (localText != null) {\r\n return localText;\r\n }\r\n }\r\n\r\n return text;\r\n }\r\n}\r\n\r\nexport function tryGetText(key: string): string {\r\n return LT.$table[key];\r\n}\r\n\r\nexport function dbTryText(prefix: string): ((key: string) => string) {\r\n return function (key: string) {\r\n return text(\"Db.\" + prefix + \".\" + key);\r\n }\r\n}\r\n\r\nexport function proxyTexts(o: Object, p: string, t: Object): Object {\r\n if (typeof window != 'undefined' && window['Proxy']) {\r\n return new window['Proxy'](o, {\r\n get: (x: Object, y: string) => {\r\n var tv = t[y];\r\n if (tv == null)\r\n return;\r\n if (typeof tv == 'number')\r\n return text(p + y);\r\n else {\r\n var z = o[y];\r\n if (z != null)\r\n return z;\r\n o[y] = z = proxyTexts({}, p + y + '.', tv);\r\n return z;\r\n }\r\n },\r\n ownKeys: (x: Object) => Object.keys(t)\r\n });\r\n }\r\n else {\r\n for (var k of Object.keys(t)) {\r\n if (typeof t[k] == 'number')\r\n Object.defineProperty(o, k, {\r\n get: () => text(p + k)\r\n });\r\n else\r\n o[k] = proxyTexts({}, p + k + '.', t[k]);\r\n }\r\n return o;\r\n }\r\n}\r\n\r\nexport class LT {\r\n static $table: { [key: string]: string } = {};\r\n static empty: LT = new LT('');\r\n\r\n constructor(private key: string) {\r\n }\r\n\r\n static add(obj: any, pre?: string) {\r\n if (!obj) {\r\n return;\r\n }\r\n pre = pre || '';\r\n for (let k of Object.keys(obj)) {\r\n let actual = pre + k;\r\n let o = obj[k];\r\n if (typeof (o) === 'object') {\r\n LT.add(o, actual + '.');\r\n }\r\n else {\r\n LT.$table[actual] = o;\r\n }\r\n }\r\n }\r\n\r\n get() {\r\n var t = LT.$table[this.key];\r\n if (t == null) {\r\n t = this.key || '';\r\n }\r\n return t;\r\n }\r\n\r\n toString() {\r\n var t = LT.$table[this.key];\r\n if (t == null) {\r\n t = this.key || '';\r\n }\r\n return t;\r\n }\r\n\r\n static initializeTextClass = function (type: any, prefix: string) {\r\n var $t1 = Object.keys(type).slice();\r\n for (var $t2 = 0; $t2 < $t1.length; $t2++) {\r\n var member = $t1[$t2];\r\n var value = type[member];\r\n if (value instanceof LT) {\r\n var lt = value;\r\n var key = prefix + member;\r\n LT.$table[key] = lt.key;\r\n type[member] = new LT(key);\r\n }\r\n }\r\n }\r\n\r\n static getDefault = function (key: string, defaultText: string) {\r\n var t = LT.$table[key];\r\n if (t == null) {\r\n t = defaultText;\r\n if (t == null) {\r\n t = key || '';\r\n }\r\n }\r\n return t;\r\n }\r\n}","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export type Dictionary = { [key: string]: TItem };\r\n\r\nexport function coalesce(a: any, b: any): any {\r\n return a != null ? a : b;\r\n}\r\n\r\nexport function isValue(a: any): boolean {\r\n return a != null;\r\n}\r\n\r\nexport let today = (): Date => {\r\n var d = new Date();\r\n return new Date(d.getFullYear(), d.getMonth(), d.getDate());\r\n}\r\n\r\nexport function extend(a: T, b: T): T {\r\n for (var key in b)\r\n if (Object.prototype.hasOwnProperty.call(b, key))\r\n a[key] = b[key];\r\n return a;\r\n}\r\n\r\nexport function deepClone(a: T, a2?: any, a3?: any): T {\r\n // for backward compatibility\r\n if (a2 != null || a3 != null) {\r\n return extend(extend(deepClone(a || {}), deepClone(a2 || {})), deepClone(a3 || {}));\r\n }\r\n\r\n if (!a)\r\n return a;\r\n \r\n let v: any;\r\n let b: T = Array.isArray(a) ? [] : {} as any;\r\n for (const k in a) {\r\n v = a[k];\r\n b[k] = (typeof v === \"object\") ? deepClone(v) : v;\r\n }\r\n \r\n return b;\r\n}\r\n\r\n// @ts-ignore check for global\r\nlet globalObj: any = typeof (global) !== \"undefined\" ? global : (typeof (window) !== \"undefined\" ? window : (typeof (self) !== \"undefined\" ? self : null));\r\n\r\ninterface TypeExt {\r\n __interface?: boolean;\r\n __interfaces?: any[];\r\n __isAssignableFrom?: (from: any) => boolean;\r\n __isInstanceOfType?: (instance: any) => boolean;\r\n __metadata?: TypeMetadata;\r\n __metadata$?: TypeMetadata;\r\n __typeName?: string;\r\n __typeName$?: string;\r\n}\r\n\r\ninterface TypeMetadata {\r\n enumFlags?: boolean;\r\n attr?: any[];\r\n members?: TypeMember[];\r\n}\r\n\r\nexport type Type = Function | Object;\r\n\r\nexport interface TypeMember {\r\n name: string;\r\n type: MemberType;\r\n attr?: any[];\r\n getter?: string;\r\n setter?: string;\r\n}\r\n\r\nlet types: { [key: string]: Type } = {};\r\n\r\nexport function getNested(from: any, name: string) {\r\n var a = name.split('.');\r\n for (var i = 0; i < a.length; i++) {\r\n from = from[a[i]];\r\n if (from == null)\r\n return null;\r\n }\r\n return from;\r\n}\r\n\r\nexport function getType(name: string, target?: any): Type {\r\n var type: any;\r\n if (target == null) {\r\n type = types[name];\r\n if (type != null || globalObj == null || name === \"Object\")\r\n return type;\r\n\r\n target = globalObj;\r\n }\r\n\r\n type = getNested(target, name)\r\n if (typeof type !== 'function')\r\n return null;\r\n\r\n return type;\r\n}\r\n\r\nexport function getTypeFullName(type: Type): string {\r\n return (type as TypeExt).__typeName || (type as any).name ||\r\n (type.toString().match(/^\\s*function\\s*([^\\s(]+)/) || [])[1] || 'Object';\r\n};\r\n\r\nexport function getTypeName(type: Type): string {\r\n var fullName = getTypeFullName(type);\r\n var bIndex = fullName.indexOf('[');\r\n var nsIndex = fullName.lastIndexOf('.', bIndex >= 0 ? bIndex : fullName.length);\r\n return nsIndex > 0 ? fullName.substr(nsIndex + 1) : fullName;\r\n};\r\n\r\nexport function getInstanceType(instance: any): any {\r\n if (instance == null)\r\n throw new NullReferenceException('Cannot get type of null');\r\n\r\n // Have to catch as constructor cannot be looked up on native COM objects\r\n try {\r\n return instance.constructor;\r\n }\r\n catch (ex) {\r\n return Object;\r\n }\r\n};\r\n\r\nexport function isAssignableFrom(target: any, type: Type) {\r\n if (target === type || (type as any).prototype instanceof target)\r\n return true;\r\n\r\n if (typeof (target as TypeExt).__isAssignableFrom === 'function')\r\n return (target as TypeExt).__isAssignableFrom(type);\r\n\r\n return false;\r\n};\r\n\r\nexport function isInstanceOfType(instance: any, type: Type) {\r\n if (instance == null)\r\n return false;\r\n\r\n if (typeof (type as TypeExt).__isInstanceOfType === 'function')\r\n return (type as TypeExt).__isInstanceOfType(instance);\r\n\r\n return isAssignableFrom(type, getInstanceType(instance));\r\n};\r\n\r\nexport function safeCast(instance: any, type: Type) {\r\n return isInstanceOfType(instance, type) ? instance : null;\r\n};\r\n\r\nexport function cast(instance: any, type: Type) {\r\n if (instance == null)\r\n return instance;\r\n else if (isInstanceOfType(instance, type))\r\n return instance;\r\n throw new InvalidCastException('Cannot cast object to type ' + getTypeFullName(type));\r\n}\r\n\r\nexport function getBaseType(type: any) {\r\n if (type === Object ||\r\n !type.prototype ||\r\n (type as TypeExt).__interface === true) {\r\n return null;\r\n }\r\n else if (Object.getPrototypeOf) {\r\n return Object.getPrototypeOf(type.prototype).constructor;\r\n }\r\n else {\r\n var p = type.prototype;\r\n if (Object.prototype.hasOwnProperty.call(p, 'constructor')) {\r\n try {\r\n var ownValue = p.constructor;\r\n delete p.constructor;\r\n return p.constructor;\r\n }\r\n finally {\r\n p.constructor = ownValue;\r\n }\r\n }\r\n return p.constructor;\r\n }\r\n};\r\n\r\nexport function getAttributes(type: any, attrType: any, inherit?: boolean) {\r\n var result = [];\r\n if (inherit) {\r\n var b = getBaseType(type);\r\n if (b) {\r\n var a: any = getAttributes(b, attrType, true);\r\n for (var i = 0; i < a.length; i++) {\r\n var t = getInstanceType(a[i]);\r\n result.push(a[i]);\r\n }\r\n }\r\n }\r\n var attr = (type as TypeExt).__metadata?.attr;\r\n if (attr != null) {\r\n for (var i = 0; i < attr.length; i++) {\r\n var a: any = attr[i];\r\n if (attrType == null || isInstanceOfType(a, attrType)) {\r\n var t = getInstanceType(a);\r\n for (var j = result.length - 1; j >= 0; j--) {\r\n if (isInstanceOfType(result[j], t))\r\n result.splice(j, 1);\r\n }\r\n result.push(a);\r\n }\r\n }\r\n }\r\n return result;\r\n};\r\n\r\nexport const enum MemberType {\r\n field = 4,\r\n property = 16\r\n}\r\n\r\nexport function getMembers(type: any, memberTypes: MemberType): TypeMember[] {\r\n var result: TypeMember[] = [];\r\n var b = getBaseType(type);\r\n if (b)\r\n result = getMembers(b, memberTypes & ~1);\r\n\r\n var members = (type as TypeExt).__metadata?.members;\r\n if (members != null) {\r\n for (var m of members) {\r\n if (memberTypes & m.type)\r\n result.push(m);\r\n }\r\n }\r\n\r\n return result;\r\n};\r\n\r\nexport function addTypeMember(type: any, member: TypeMember): TypeMember {\r\n\r\n var name = member.name;\r\n var md = ensureMetadata(type);\r\n md.members = md.members || [];\r\n\r\n let existing: TypeMember;\r\n for (var m of md.members) {\r\n if (m.name == name) {\r\n existing = m;\r\n break;\r\n }\r\n }\r\n\r\n if (existing) {\r\n if (member.type != null)\r\n existing.type = member.type;\r\n if (member.attr != null)\r\n existing.attr = merge(existing.attr, member.attr);\r\n if (member.getter != null)\r\n existing.getter = member.getter;\r\n if (member.setter != null)\r\n existing.setter = member.setter;\r\n return existing;\r\n }\r\n else {\r\n md.members.push(member);\r\n return member;\r\n }\r\n}\r\n\r\nexport function getTypes(from?: any): any[] {\r\n var result = [];\r\n if (!from) {\r\n for (var t in types) {\r\n if (Object.prototype.hasOwnProperty.call(types, t))\r\n result.push(types[t]);\r\n }\r\n }\r\n else {\r\n var traverse = function (s: any, n: string) {\r\n for (var c in s) {\r\n if (Object.prototype.hasOwnProperty.call(s, c))\r\n traverse(s[c], c);\r\n }\r\n if (typeof (s) === 'function' &&\r\n n.charAt(0).toUpperCase() === n.charAt(0) &&\r\n n.charAt(0).toLowerCase() !== n.charAt(0))\r\n result.push(s);\r\n };\r\n traverse(from, '');\r\n }\r\n return result;\r\n};\r\n\r\nexport function clearKeys(d: any) {\r\n for (var n in d) {\r\n if (Object.prototype.hasOwnProperty.call(d, n))\r\n delete d[n];\r\n }\r\n}\r\n\r\nexport function delegateCombine(delegate1: any, delegate2: any) {\r\n if (!delegate1) {\r\n if (!delegate2._targets) {\r\n return delegate2;\r\n }\r\n return delegate2;\r\n }\r\n if (!delegate2) {\r\n if (!delegate1._targets) {\r\n return delegate1;\r\n }\r\n return delegate1;\r\n }\r\n\r\n var targets1 = delegate1._targets ? delegate1._targets : [null, delegate1];\r\n var targets2 = delegate2._targets ? delegate2._targets : [null, delegate2];\r\n\r\n return _mkdel(targets1.concat(targets2));\r\n};\r\n\r\nexport namespace Enum {\r\n export let toString = (enumType: any, value: number): string => {\r\n var values = enumType;\r\n if (value === 0 || !((enumType as TypeExt).__metadata?.enumFlags)) {\r\n for (var i in values) {\r\n if (values[i] === value) {\r\n return i;\r\n }\r\n }\r\n return value == null ? \"\" : value.toString();\r\n }\r\n else {\r\n var parts: string[] = [];\r\n for (var i in values) {\r\n if (values[i] & value) {\r\n parts.push(i);\r\n }\r\n else\r\n parts.push(value == null ? \"\" : value.toString());\r\n }\r\n return parts.join(' | ');\r\n }\r\n };\r\n\r\n export let getValues = (enumType: any) => {\r\n var parts = [];\r\n var values = enumType;\r\n for (var i in values) {\r\n if (Object.prototype.hasOwnProperty.call(values, i) &&\r\n typeof values[i] === \"number\")\r\n parts.push(values[i]);\r\n }\r\n return parts;\r\n };\r\n}\r\n\r\nfunction delegateContains(targets: any[], object: any, method: any) {\r\n for (var i = 0; i < targets.length; i += 2) {\r\n if (targets[i] === object && targets[i + 1] === method) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n};\r\n\r\n\r\nlet _mkdel = (targets: any[]): any => {\r\n var delegate: any = function () {\r\n if (targets.length === 2) {\r\n return targets[1].apply(targets[0], arguments);\r\n }\r\n else {\r\n var clone = targets.slice();\r\n for (var i = 0; i < clone.length; i += 2) {\r\n if (delegateContains(targets, clone[i], clone[i + 1])) {\r\n clone[i + 1].apply(clone[i], arguments);\r\n }\r\n }\r\n return null;\r\n }\r\n };\r\n delegate._targets = targets;\r\n\r\n return delegate;\r\n};\r\n\r\nexport let delegateRemove = (delegate1: any, delegate2: any) => {\r\n if (!delegate1 || (delegate1 === delegate2)) {\r\n return null;\r\n }\r\n if (!delegate2) {\r\n return delegate1;\r\n }\r\n\r\n var targets = delegate1._targets;\r\n var object = null;\r\n var method;\r\n if (delegate2._targets) {\r\n object = delegate2._targets[0];\r\n method = delegate2._targets[1];\r\n }\r\n else {\r\n method = delegate2;\r\n }\r\n\r\n for (var i = 0; i < targets.length; i += 2) {\r\n if ((targets[i] === object) && (targets[i + 1] === method)) {\r\n if (targets.length === 2) {\r\n return null;\r\n }\r\n var t = targets.slice();\r\n t.splice(i, 2);\r\n return _mkdel(t);\r\n }\r\n }\r\n\r\n return delegate1;\r\n};\r\n\r\nexport let isEnum = (type: any) => {\r\n return typeof type !== \"function\" &&\r\n (type as TypeExt).__interface === null;\r\n};\r\n\r\nexport function initFormType(typ: Function, nameWidgetPairs: any[]) {\r\n for (var i = 0; i < nameWidgetPairs.length - 1; i += 2) {\r\n (function (name: string, widget: any) {\r\n Object.defineProperty(typ.prototype, name, {\r\n get: function () {\r\n return this.w(name, widget);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n })(nameWidgetPairs[i], nameWidgetPairs[i + 1]);\r\n }\r\n}\r\n\r\nexport function prop(type: any, name: string, getter?: string, setter?: string) {\r\n getter = getter || \"get_\" + name;\r\n setter = setter || \"set_\" + name;\r\n\r\n Object.defineProperty(type.prototype, name, {\r\n get: function () {\r\n return this[getter]();\r\n },\r\n set: function (value) {\r\n return this[setter](value);\r\n },\r\n configurable: true,\r\n enumerable: true\r\n });\r\n}\r\n\r\nfunction ensureMetadata(target: Type): TypeMetadata {\r\n\r\n if (!Object.hasOwnProperty.call(target, '__metadata')) {\r\n Object.defineProperty(target, '__metadata', {\r\n get: function () { return Object.prototype.hasOwnProperty.call(this, '__metadata$') ? (this as TypeExt).__metadata$ : void 0; },\r\n set: function (v) { (this as TypeExt).__metadata$ = v; }\r\n });\r\n }\r\n if (!(target as TypeExt).__metadata) {\r\n (target as TypeExt).__metadata = Object.create(null);\r\n }\r\n\r\n return (target as TypeExt).__metadata;\r\n}\r\n\r\nfunction distinct(arr: any[]) {\r\n return arr.filter((item, pos) => arr.indexOf(item) === pos);\r\n}\r\n\r\nfunction merge(arr1: any[], arr2: any[]) {\r\n if (!arr1 || !arr2)\r\n return (arr1 || arr2 || []).slice();\r\n\r\n return distinct(arr1.concat(arr2));\r\n}\r\n\r\nfunction interfaceIsAssignableFrom(from: any) {\r\n return from != null && (from as TypeExt).__interfaces != null && (from as TypeExt).__interfaces.indexOf(this) >= 0;\r\n}\r\n\r\nfunction registerType(type: any, name: string, intf: any[]) {\r\n if (name && name.length) {\r\n setTypeName(type, name);\r\n types[name] = type;\r\n }\r\n else if ((type as TypeExt).__typeName && (type as TypeExt).__typeName.length)\r\n types[(type as TypeExt).__typeName] = type;\r\n\r\n if (intf != null && intf.length)\r\n (type as TypeExt).__interfaces = merge((type as TypeExt).__interfaces, intf);\r\n}\r\n\r\nexport function registerClass(type: any, name: string, intf?: any[]) {\r\n registerType(type, name, intf);\r\n (type as TypeExt).__interface = false;\r\n}\r\n\r\nexport function registerEnum(type: any, name: string) {\r\n registerType(type, name, undefined);\r\n (type as TypeExt).__interface = null; // mark as enum\r\n}\r\n\r\nexport function registerInterface(type: any, name: string, intf?: any[]) {\r\n registerType(type, name, intf);\r\n (type as TypeExt).__interface = true;\r\n (type as TypeExt).__isAssignableFrom = interfaceIsAssignableFrom;\r\n}\r\n\r\nexport function addAttribute(type: any, attr: any) {\r\n var md = ensureMetadata(type);\r\n md.attr = md.attr || [];\r\n md.attr.push(attr);\r\n}\r\n\r\nexport function setTypeName(target: Type, value: string) {\r\n if (!Object.hasOwnProperty.call(target, '__typeName')) {\r\n Object.defineProperty(target, '__typeName', {\r\n get: function() { return Object.prototype.hasOwnProperty.call(this, '__typeName$') ? (this as TypeExt).__typeName$ : void 0; },\r\n set: function(v) { (this as TypeExt).__typeName$ = v; }\r\n });\r\n }\r\n (target as TypeExt).__typeName = value;\r\n}\r\n\r\nexport class ISlickFormatter {\r\n}\r\n\r\nregisterInterface(ISlickFormatter, 'Serenity.ISlickFormatter');\r\n\r\nexport function initializeTypes(root: any, pre: string, limit: number) {\r\n\r\n if (!root)\r\n return;\r\n\r\n for (var k of Object.keys(root)) {\r\n if (k.charAt(0) < 'A' || k.charAt(0) > 'Z')\r\n continue;\r\n\r\n if (k.indexOf('$') >= 0)\r\n continue;\r\n\r\n if (k === \"prototype\")\r\n continue;\r\n\r\n if (!Object.prototype.hasOwnProperty.call(root, k))\r\n continue;\r\n\r\n var obj = root[k];\r\n\r\n if ($.isArray(obj) ||\r\n root instanceof Date)\r\n continue;\r\n\r\n var t = typeof (obj);\r\n if (t === \"string\" || t === \"number\")\r\n continue;\r\n\r\n if (!(obj as TypeExt).__typeName &&\r\n ((typeof obj === \"function\" && obj.nodeType !== \"number\") || \r\n ((obj as TypeExt).__interface !== undefined))) {\r\n \r\n if (!obj.__interfaces &&\r\n obj.prototype &&\r\n obj.prototype.format &&\r\n k.substr(-9) === \"Formatter\") {\r\n if ((obj as TypeExt).__interface === undefined)\r\n (obj as TypeExt).__interface = false;\r\n (obj as TypeExt).__interfaces = [ISlickFormatter]\r\n }\r\n\r\n if ((obj as TypeExt).__interface === undefined) {\r\n var baseType = getBaseType(obj);\r\n if (baseType && (baseType as TypeExt).__interface === false) {\r\n (obj as TypeExt).__interface = false;\r\n }\r\n }\r\n\r\n if ((obj as TypeExt).__interface !== undefined) {\r\n setTypeName(obj, pre + k);\r\n types[pre + k] = obj;\r\n }\r\n }\r\n \r\n if (limit > 0) \r\n initializeTypes(obj, pre + k + \".\", limit - 1);\r\n }\r\n}\r\n\r\nexport class Exception extends Error {\r\n constructor(message: string) {\r\n super(message);\r\n this.name = \"Exception\";\r\n }\r\n}\r\n\r\nexport class NullReferenceException extends Exception {\r\n constructor(message?: string) {\r\n super(message || 'Object is null.');\r\n this.name = \"NullReferenceException\";\r\n }\r\n}\r\n\r\nexport class ArgumentNullException extends Exception {\r\n constructor(paramName: string, message?: string) {\r\n super((message || 'Value cannot be null.') + '\\nParameter name: ' + paramName);\r\n this.name = \"ArgumentNullException\";\r\n }\r\n}\r\n\r\nexport class ArgumentOutOfRangeException extends Exception {\r\n constructor(paramName: string, message?: string) {\r\n super((message ?? 'Value is out of range.') +\r\n (paramName ? ('\\nParameter name: ' + paramName) : \"\"));\r\n this.name = \"ArgumentNullException\";\r\n }\r\n}\r\n\r\nexport class InvalidCastException extends Exception {\r\n constructor(message: string) {\r\n super(message);\r\n this.name = \"InvalidCastException\";\r\n }\r\n}\r\n\r\nexport {}","import { extend } from \"./System\";\r\n\r\nexport let defaultNotifyOptions: ToastrOptions = {\r\n timeOut: 3000,\r\n showDuration: 250,\r\n hideDuration: 500,\r\n extendedTimeOut: 500,\r\n positionClass: 'toast-top-full-width'\r\n}\r\n\r\nfunction getToastrOptions(options: ToastrOptions) {\r\n options = extend(extend({}, defaultNotifyOptions), options);\r\n positionToastContainer(true);\r\n return options;\r\n}\r\n\r\nexport function notifyWarning(message: string, title?: string, options?: ToastrOptions): void {\r\n toastr.warning(message, title, getToastrOptions(options));\r\n}\r\n\r\nexport function notifySuccess(message: string, title?: string, options?: ToastrOptions): void {\r\n toastr.success(message, title, getToastrOptions(options));\r\n}\r\n\r\nexport function notifyInfo(message: string, title?: string, options?: ToastrOptions): void {\r\n toastr.info(message, title, getToastrOptions(options));\r\n}\r\n\r\nexport function notifyError(message: string, title?: string, options?: ToastrOptions): void {\r\n toastr.error(message, title, getToastrOptions(options));\r\n}\r\n\r\nexport function positionToastContainer(create: boolean) {\r\n if (typeof toastr === 'undefined') {\r\n return;\r\n }\r\n\r\n var dialog = $(window.document.body).children('.ui-dialog:visible, .modal.in, .modal.show').last();\r\n var container = toastr.getContainer(null, create);\r\n if (container.length === 0) {\r\n return;\r\n }\r\n if (dialog.length > 0) {\r\n var position = dialog.position();\r\n container.addClass('positioned-toast toast-top-full-width');\r\n container.css({ position: 'absolute', top: position.top + 28 + 'px', left: position.left + 6 + 'px', width: dialog.width() - 12 + 'px' });\r\n }\r\n else {\r\n container.addClass('toast-top-full-width');\r\n if (container.hasClass('positioned-toast')) {\r\n container.removeClass('positioned-toast');\r\n container.css({ position: '', top: '', left: '', width: '' });\r\n }\r\n }\r\n}","var Config = {\r\n /**\r\n * This is the root path of your application. If your application resides under http://localhost/mysite/,\r\n * your root path is \"mysite/\". This variable is automatically initialized by reading from a element\r\n * with ID \"ApplicationPath\" from current page, which is usually located in your _LayoutHead.cshtml file\r\n */\r\n applicationPath: '/',\r\n\r\n /**\r\n * Email validation by default only allows ASCII characters. Set this to true if you want to allow unicode.\r\n */\r\n emailAllowOnlyAscii: true,\r\n\r\n /**\r\n * Set this to true, to enable responsive dialogs by default, without having to add Decorators.responsive()\"\r\n * on dialog classes manually. It's false by default for backward compatibility.\r\n */\r\n responsiveDialogs: false,\r\n\r\n /**\r\n * Set this to true, to prefer bootstrap dialogs over jQuery UI dialogs by default for message dialogs\r\n */\r\n bootstrapMessages: false,\r\n\r\n /**\r\n * This is the list of root namespaces that may be searched for types. For example, if you specify an editor type\r\n * of \"MyEditor\", first a class with name \"MyEditor\" will be searched, if not found, search will be followed by\r\n * \"Serenity.MyEditor\" and \"MyApp.MyEditor\" if you added \"MyApp\" to the list of root namespaces.\r\n *\r\n * You should usually add your application root namespace to this list in ScriptInitialization.ts file.\r\n */\r\n rootNamespaces: ['Serenity'],\r\n\r\n /**\r\n * This is an optional method for handling when user is not logged in. If a users session is expired \r\n * and when a NotAuthorized response is received from a service call, Serenity will call this handler, so\r\n * you may intercept it and notify user about this situation and ask if she wants to login again...\r\n */\r\n notLoggedInHandler: null\r\n}\r\n\r\nif (typeof document !== 'undefined') {\r\n var pathLink = document.querySelector('link#ApplicationPath') as HTMLLinkElement;\r\n if (pathLink != null) {\r\n Config.applicationPath = pathLink.getAttribute('href');\r\n }\r\n}\r\n\r\nexport { Config };","import { Exception } from \"./System\";\r\nimport { text } from \"./LocalText\";\r\nimport { isEmptyOrNull } from \"./Strings\";\r\n\r\nexport function addOption(select: JQuery, key: string, text: string) {\r\n $('