{"version":3,"file":"app-9e164259.xxxxxxxx.bundle.js","mappings":"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","sources":["webpack://iadviser/./src/resources/plugins/aurelia-table/au-table-pagination.html","webpack://iadviser/./src/resources/plugins/aurelia-table/au-table-pagination.ts","webpack://iadviser/./src/resources/plugins/aurelia-table/au-table-select.ts","webpack://iadviser/./src/resources/plugins/aurelia-table/au-table-sort.ts","webpack://iadviser/./src/resources/plugins/aurelia-table/au-table.ts","webpack://iadviser/./src/resources/plugins/aurelia-table/index.ts","webpack://iadviser/./src/resources/plugins/feature-flags/feature-flags-service.ts","webpack://iadviser/./src/resources/plugins/feature-flags/index.ts","webpack://iadviser/./src/resources/plugins/keyboard-sequence/keyboard-sequence.ts","webpack://iadviser/./src/resources/postrender-step.ts","webpack://iadviser/./src/resources/prepareTaskModel.ts","webpack://iadviser/./src/resources/prerender-step.ts","webpack://iadviser/./src/resources/scroll-into-view.ts"],"sourcesContent":["// Module\nvar code = \"\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\";\n// Exports\nexport default code;","import { autoinject, bindable, bindingMode, DOM } from 'aurelia-framework';\r\n\r\n@autoinject()\r\nexport class AutPaginationCustomElement {\r\n @bindable({ defaultBindingMode: bindingMode.twoWay }) currentPage;\r\n @bindable pageSize;\r\n @bindable totalItems;\r\n @bindable hideSinglePage = true;\r\n @bindable paginationSize;\r\n @bindable boundaryLinks = false;\r\n @bindable firstText = 'First';\r\n @bindable lastText = 'Last';\r\n @bindable directionLinks = true;\r\n @bindable previousText = '<';\r\n @bindable nextText = '>';\r\n @bindable disable = false;\r\n\r\n totalPages = 1;\r\n displayPages = [];\r\n\r\n static inject = [Element];\r\n constructor(private element: Element) {\r\n this.element = element;\r\n }\r\n\r\n bind() {\r\n if (this.currentPage === undefined || this.currentPage === null || this.currentPage < 1) {\r\n this.currentPage = 1;\r\n }\r\n\r\n if (this.pageSize === undefined || this.pageSize === null || this.pageSize < 1) {\r\n this.pageSize = 5;\r\n }\r\n }\r\n\r\n totalItemsChanged() {\r\n this.calculatePages();\r\n }\r\n\r\n pageSizeChanged() {\r\n this.calculatePages();\r\n }\r\n\r\n currentPageChanged() {\r\n this.calculatePages();\r\n this.dispatchPageChangedEvent();\r\n }\r\n\r\n dispatchPageChangedEvent() {\r\n const event = DOM.createCustomEvent('page-changed', {\r\n bubbles: true,\r\n detail: {\r\n currentPage: this.currentPage,\r\n },\r\n });\r\n this.element.dispatchEvent(event);\r\n }\r\n\r\n calculatePages() {\r\n this.totalPages = this.totalItems <= this.pageSize ? 1 : Math.ceil(this.totalItems / this.pageSize);\r\n\r\n if (isNaN(this.paginationSize) || this.paginationSize <= 0) {\r\n this.displayAllPages();\r\n } else {\r\n this.limitVisiblePages();\r\n }\r\n }\r\n\r\n displayAllPages() {\r\n const displayPages = [];\r\n\r\n for (let i = 1; i <= this.totalPages; i++) {\r\n displayPages.push({\r\n title: i.toString(),\r\n value: i,\r\n });\r\n }\r\n this.displayPages = displayPages;\r\n }\r\n\r\n limitVisiblePages() {\r\n const displayPages = [];\r\n\r\n const totalTiers = Math.ceil(this.totalPages / this.paginationSize);\r\n\r\n const activeTier = Math.ceil(this.currentPage / this.paginationSize);\r\n\r\n const start = (activeTier - 1) * this.paginationSize + 1;\r\n const end = start + this.paginationSize;\r\n\r\n if (activeTier > 1) {\r\n displayPages.push({\r\n title: '...',\r\n value: start - 1,\r\n });\r\n }\r\n\r\n for (let i = start; i < end; i++) {\r\n if (i > this.totalPages) {\r\n break;\r\n }\r\n\r\n displayPages.push({\r\n title: i.toString(),\r\n value: i,\r\n });\r\n }\r\n\r\n if (activeTier < totalTiers) {\r\n displayPages.push({ title: '...', value: end });\r\n }\r\n\r\n this.displayPages = displayPages;\r\n }\r\n\r\n selectPage(page) {\r\n if (page < 1 || page > this.totalPages || page === this.currentPage) {\r\n return;\r\n }\r\n\r\n this.currentPage = page;\r\n }\r\n\r\n nextPage() {\r\n if (this.currentPage < this.totalPages && !this.disable) {\r\n this.currentPage++;\r\n }\r\n }\r\n\r\n previousPage() {\r\n if (this.currentPage > 1 && !this.disable) {\r\n this.currentPage--;\r\n }\r\n }\r\n\r\n firstPage() {\r\n this.currentPage = 1;\r\n }\r\n\r\n lastPage() {\r\n this.currentPage = this.totalPages;\r\n }\r\n}\r\n","import { bindable, bindingMode, BindingEngine, DOM, autoinject } from 'aurelia-framework';\r\nimport {AureliaTableCustomAttribute} from './au-table';\r\n\r\n@autoinject()\r\nexport class AutSelectCustomAttribute {\r\n\r\n @bindable({defaultBindingMode: bindingMode.twoWay})row;\r\n @bindable mode = 'single';\r\n @bindable selectedClass = 'aut-row-selected';\r\n @bindable custom = false;\r\n\r\n selectedSubscription;\r\n rowSelectedListener;\r\n\r\n constructor(private auTable: AureliaTableCustomAttribute, private element: Element, private bindingEngine: BindingEngine) {\r\n this.rowSelectedListener = event => {\r\n this.handleRowSelected(event);\r\n };\r\n }\r\n\r\n attached() {\r\n if (!this.custom) {\r\n (this.element as HTMLElement).style.cursor = 'pointer';\r\n this\r\n .element\r\n .addEventListener('click', this.rowSelectedListener);\r\n }\r\n\r\n this.selectedSubscription = this\r\n .bindingEngine\r\n .propertyObserver(this.row, '$isSelected')\r\n .subscribe(() => this.isSelectedChanged());\r\n\r\n this.setClass();\r\n }\r\n\r\n detached() {\r\n if (!this.custom) {\r\n this\r\n .element\r\n .removeEventListener('click', this.rowSelectedListener);\r\n }\r\n\r\n this\r\n .selectedSubscription\r\n .dispose();\r\n }\r\n\r\n setClass() {\r\n if (this.row.$isSelected) {\r\n this\r\n .element\r\n .classList\r\n .add(this.selectedClass);\r\n } else {\r\n this\r\n .element\r\n .classList\r\n .remove(this.selectedClass);\r\n }\r\n }\r\n\r\n handleRowSelected(event) {\r\n const source = event.target || event.srcElement;\r\n if (source.tagName.toLowerCase() !== 'td') {\r\n return;\r\n }\r\n this.row.$isSelected = this.row.$isSelected\r\n ? false\r\n : true;\r\n }\r\n\r\n dispatchSelectedEvent() {\r\n const selectedEvent = DOM.createCustomEvent('select', {\r\n detail: {\r\n row: this.row\r\n },\r\n bubbles: true\r\n });\r\n this\r\n .element\r\n .dispatchEvent(selectedEvent);\r\n }\r\n\r\n isSelectedChanged() {\r\n this.setClass();\r\n\r\n if (this.row.$isSelected) {\r\n if (this.mode === 'single') {\r\n this.deselectAll();\r\n }\r\n\r\n this.dispatchSelectedEvent();\r\n }\r\n }\r\n\r\n deselectAll() {\r\n this\r\n .auTable\r\n .data\r\n .forEach(item => {\r\n if (item !== this.row) {\r\n item.$isSelected = false;\r\n }\r\n });\r\n }\r\n}\r\n","import { inject, bindable, autoinject } from \"aurelia-framework\";\r\nimport { AureliaTableCustomAttribute } from \"./au-table\";\r\n\r\n@autoinject\r\nexport class AutSortCustomAttribute {\r\n @bindable key;\r\n @bindable custom;\r\n @bindable default;\r\n @bindable callback = () => \"\";\r\n\r\n order = 0;\r\n orderClasses = [\"aut-desc\", \"aut-sortable\", \"aut-asc\"];\r\n\r\n ignoreEvent = false;\r\n\r\n private rowSelectedListener;\r\n private sortChangedListener;\r\n\r\n constructor(private auTable: AureliaTableCustomAttribute, private element: Element) {\r\n this.rowSelectedListener = () => {\r\n this.handleHeaderClicked();\r\n };\r\n\r\n this.sortChangedListener = () => {\r\n this.handleSortChanged();\r\n };\r\n }\r\n\r\n handleSortChanged() {\r\n if (!this.ignoreEvent) {\r\n this.order = 0;\r\n this.setClass();\r\n this.callback();\r\n } else {\r\n this.ignoreEvent = false;\r\n }\r\n }\r\n\r\n attached() {\r\n if (this.key === null && this.custom === null) {\r\n throw new Error(\"Must provide a key or a custom sort function.\");\r\n }\r\n\r\n (this.element as HTMLElement).style.cursor = \"pointer\";\r\n this.element.classList.add(\"aut-sort\");\r\n\r\n this.element.addEventListener(\"click\", this.rowSelectedListener);\r\n this.auTable.addSortChangedListener(this.sortChangedListener);\r\n\r\n this.handleDefault();\r\n this.setClass();\r\n }\r\n\r\n detached() {\r\n this.element.removeEventListener(\"click\", this.rowSelectedListener);\r\n this.auTable.removeSortChangedListener(this.sortChangedListener);\r\n }\r\n\r\n handleDefault() {\r\n if (this.default) {\r\n this.order = this.default === \"desc\" ? -1 : 1;\r\n this.doSort();\r\n }\r\n }\r\n\r\n doSort() {\r\n if (this.auTable.dataSource === \"server\") {\r\n return;\r\n }\r\n this.ignoreEvent = true;\r\n this.auTable.sortChanged(this.key, this.custom, this.order);\r\n }\r\n\r\n setClass() {\r\n this.orderClasses.forEach((next) => this.element.classList.remove(next));\r\n this.element.classList.add(this.orderClasses[this.order + 1]);\r\n }\r\n\r\n handleHeaderClicked() {\r\n this.order = this.order === 0 || this.order === -1 ? this.order + 1 : -1;\r\n this.setClass();\r\n this.doSort();\r\n }\r\n}\r\n","import {\r\n autoinject,\r\n bindable,\r\n bindingMode,\r\n BindingEngine,\r\n} from \"aurelia-framework\";\r\n\r\n@autoinject()\r\nexport class AureliaTableCustomAttribute {\r\n @bindable dataSource = \"local\"; // local, ajax and server;\r\n\r\n @bindable data;\r\n @bindable({ defaultBindingMode: bindingMode.twoWay }) displayData;\r\n\r\n @bindable filters;\r\n\r\n @bindable({ defaultBindingMode: bindingMode.twoWay }) currentPage;\r\n @bindable pageSize;\r\n @bindable({ defaultBindingMode: bindingMode.twoWay }) totalItems;\r\n\r\n @bindable({ defaultBindingMode: bindingMode.twoWay }) api;\r\n\r\n isAttached = false;\r\n\r\n sortKey;\r\n sortOrder;\r\n sortChangedListeners = [];\r\n\r\n @bindable({ defaultBindingMode: bindingMode.twoWay }) beforePagination = [];\r\n\r\n private customSort;\r\n\r\n dataObserver;\r\n filterObservers = [];\r\n\r\n constructor(private bindingEngine: BindingEngine, private element: Element) {\r\n\r\n }\r\n\r\n bind() {\r\n if (Array.isArray(this.data)) {\r\n this.dataObserver = this.bindingEngine\r\n .collectionObserver(this.data)\r\n .subscribe(() => this.applyPlugins());\r\n }\r\n\r\n this.filtersChanged();\r\n\r\n this.api = {\r\n revealItem: (item) => this.revealItem(item),\r\n };\r\n }\r\n\r\n attached() {\r\n this.isAttached = true;\r\n this.applyPlugins();\r\n }\r\n\r\n detached() {\r\n if (this.dataObserver) {\r\n this.dataObserver.dispose();\r\n }\r\n\r\n for (const observer of this.filterObservers) {\r\n observer.dispose();\r\n }\r\n }\r\n\r\n filtersChanged() {\r\n if (Array.isArray(this.filters)) {\r\n for (const observer of this.filterObservers) {\r\n observer.dispose();\r\n }\r\n\r\n for (const filter of this.filters) {\r\n const observer = this.bindingEngine\r\n .propertyObserver(filter, \"value\")\r\n .subscribe(() => this.filterChanged());\r\n this.filterObservers.push(observer);\r\n }\r\n }\r\n }\r\n\r\n filterChanged() {\r\n if (this.dataSource === \"server\") {\r\n return;\r\n }\r\n\r\n if (this.hasPagination()) {\r\n this.currentPage = 1;\r\n }\r\n this.applyPlugins();\r\n }\r\n\r\n currentPageChanged() {\r\n this.applyPlugins();\r\n }\r\n\r\n pageSizeChanged() {\r\n this.applyPlugins();\r\n }\r\n\r\n /**\r\n * Copies the data into the display data\r\n */\r\n getDataCopy() {\r\n return [].concat(this.data);\r\n }\r\n\r\n getPageData(localData) {\r\n if (this.hasPagination()) {\r\n this.beforePagination = [].concat(localData);\r\n return this.doPaginate(localData);\r\n }\r\n\r\n return localData;\r\n }\r\n\r\n /**\r\n * Applies all the plugins to the display data\r\n */\r\n applyPlugins() {\r\n if (!this.isAttached || !this.data || this.dataSource === \"server\") {\r\n return;\r\n }\r\n\r\n let localData = this.getDataCopy();\r\n\r\n if (this.hasFilter()) {\r\n localData = this.doFilter(localData);\r\n }\r\n\r\n if ((this.sortKey || this.customSort) && this.sortOrder !== 0) {\r\n this.doSort(localData);\r\n }\r\n\r\n this.totalItems = localData.length;\r\n\r\n this.displayData = this.getPageData(localData);\r\n }\r\n\r\n doFilter(toFilter) {\r\n const filteredData = [];\r\n\r\n for (const item of toFilter) {\r\n let passed = true;\r\n\r\n for (const filter of this.filters) {\r\n if (!this.passFilter(item, filter)) {\r\n passed = false;\r\n break;\r\n }\r\n }\r\n\r\n if (passed) {\r\n filteredData.push(item);\r\n }\r\n }\r\n\r\n return filteredData;\r\n }\r\n\r\n passFilter(item, filter) {\r\n if (typeof filter.custom === \"function\" && !filter.custom(filter.value, item) ) {\r\n return false;\r\n }\r\n\r\n // User provided value is invalid or empty\r\n if (\r\n filter.value === null ||\r\n filter.value === undefined ||\r\n filter.value === \"\" ||\r\n filter.value?.toString()?.trim() === '' ||\r\n !Array.isArray(filter.keys)\r\n ) {\r\n return true;\r\n }\r\n\r\n for (const key of filter.keys) {\r\n let value = this.getPropertyValue(item, key);\r\n\r\n if (value === null || value === undefined) {\r\n return false;\r\n }\r\n\r\n // If we have types, we are dealing with with select dropdowns\r\n if ( filter?.types ) {\r\n if (filter.value === 'true' || filter.value === 'false') {\r\n if (value.toString() === filter.value) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n if (value == filter.value) {\r\n return true;\r\n }\r\n } else {\r\n value = value.toString().toLowerCase();\r\n\r\n if (value.indexOf(filter.value.toString().toLowerCase()) > -1) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n doSort(toSort) {\r\n toSort.sort((a, b) => {\r\n if (typeof this.customSort === \"function\") {\r\n return this.customSort(a, b, this.sortOrder);\r\n }\r\n\r\n let val1;\r\n let val2;\r\n\r\n if (typeof this.sortKey === \"function\") {\r\n val1 = this.sortKey(a, this.sortOrder);\r\n val2 = this.sortKey(b, this.sortOrder);\r\n } else {\r\n val1 = this.getPropertyValue(a, this.sortKey);\r\n val2 = this.getPropertyValue(b, this.sortKey);\r\n }\r\n\r\n if (val1 === null) {\r\n val1 = \"\";\r\n }\r\n if (val2 === null) {\r\n val2 = \"\";\r\n }\r\n\r\n if (this.isNumeric(val1) && this.isNumeric(val2)) {\r\n return (val1 - val2) * this.sortOrder;\r\n }\r\n\r\n const str1 = val1?.toString() ?? '';\r\n const str2 = val2?.toString() ?? '';\r\n\r\n return str1.localeCompare(str2) * this.sortOrder;\r\n });\r\n }\r\n\r\n /**\r\n * Retrieves the value in the object specified by the key path\r\n * @param object the object\r\n * @param keyPath the path\r\n * @returns {*} the value\r\n */\r\n getPropertyValue(object, keyPath) {\r\n keyPath = keyPath.replace(/\\[(\\w+)\\]/g, \".$1\"); // convert indexes to properties\r\n keyPath = keyPath.replace(/^\\./, \"\"); // strip a leading dot\r\n const a = keyPath.split(\".\");\r\n for (let i = 0, n = a.length; i < n; ++i) {\r\n const k = a[i];\r\n if (k in object) {\r\n object = object[k];\r\n } else {\r\n return;\r\n }\r\n }\r\n return object;\r\n }\r\n\r\n isNumeric(toCheck) {\r\n return !isNaN(parseFloat(toCheck)) && isFinite(toCheck);\r\n }\r\n\r\n doPaginate(toPaginate) {\r\n if (toPaginate.length <= this.pageSize) {\r\n return toPaginate;\r\n }\r\n\r\n const start = (this.currentPage - 1) * this.pageSize;\r\n\r\n const end = start + this.pageSize;\r\n\r\n return toPaginate.slice(start, end);\r\n }\r\n\r\n hasFilter() {\r\n return Array.isArray(this.filters) && this.filters.length > 0;\r\n }\r\n\r\n hasPagination() {\r\n return this.currentPage > 0;\r\n }\r\n\r\n dataChanged() {\r\n if (this.dataObserver) {\r\n this.dataObserver.dispose();\r\n }\r\n\r\n this.dataObserver = this.bindingEngine\r\n .collectionObserver(this.data)\r\n .subscribe(() => this.applyPlugins());\r\n\r\n this.applyPlugins();\r\n }\r\n\r\n sortChanged(key, custom, order) {\r\n this.sortKey = key;\r\n this.customSort = custom;\r\n this.sortOrder = order;\r\n this.applyPlugins();\r\n this.emitSortChanged();\r\n }\r\n\r\n addSortChangedListener(callback) {\r\n this.sortChangedListeners.push(callback);\r\n }\r\n\r\n removeSortChangedListener(callback) {\r\n this.removeListener(callback, this.sortChangedListeners);\r\n }\r\n\r\n emitSortChanged() {\r\n for (const listener of this.sortChangedListeners) {\r\n listener();\r\n }\r\n }\r\n\r\n removeListener(callback, listeners) {\r\n const index = listeners.indexOf(callback);\r\n\r\n if (index > -1) {\r\n listeners.splice(index, 1);\r\n }\r\n }\r\n\r\n revealItem(item) {\r\n if (!this.hasPagination()) {\r\n return true;\r\n }\r\n\r\n const index = this.beforePagination.indexOf(item);\r\n\r\n if (index === -1) {\r\n return false;\r\n }\r\n\r\n this.currentPage = Math.ceil((index + 1) / this.pageSize);\r\n\r\n return true;\r\n }\r\n}\r\n","import { FrameworkConfiguration, PLATFORM } from 'aurelia-framework';\r\n\r\nexport function configure(config: FrameworkConfiguration) {\r\n config.globalResources([\r\n PLATFORM.moduleName('resources/plugins/aurelia-table/au-table'),\r\n PLATFORM.moduleName('resources/plugins/aurelia-table/au-table-pagination'),\r\n PLATFORM.moduleName('resources/plugins/aurelia-table/au-table-select'),\r\n PLATFORM.moduleName('resources/plugins/aurelia-table/au-table-sort'),\r\n ]);\r\n}\r\n","import { autoinject } from 'aurelia-framework';\r\nimport { FeatureFlag } from 'feature-flags';\r\nimport { IFeatureFlagService } from './i-feature-flag';\r\n\r\n@autoinject\r\nexport class FeatureFlagService implements IFeatureFlagService {\r\n constructor() {\r\n this.ensureFlagsInitialized();\r\n }\r\n\r\n private ensureFlagsInitialized(): void {\r\n if (typeof window.featureFlags === 'undefined') {\r\n window.featureFlags = {};\r\n }\r\n }\r\n\r\n public enabled(flag: FeatureFlag): boolean {\r\n return !!window.featureFlags[flag];\r\n }\r\n\r\n public add(flag: FeatureFlag): void {\r\n window.featureFlags[flag] = true;\r\n this.persistFlags();\r\n }\r\n\r\n public remove(flag: FeatureFlag): void {\r\n window.featureFlags[flag] = false;\r\n this.persistFlags();\r\n }\r\n\r\n private persistFlags(): void {\r\n localStorage.setItem('featureFlags', JSON.stringify(window.featureFlags));\r\n }\r\n\r\n public load(defaults: Partial> = {}): void {\r\n const savedFlags = JSON.parse(localStorage.getItem('featureFlags') || '{}');\r\n\r\n const initialFlags = { ...defaults };\r\n\r\n for (const flagKey in FeatureFlag) {\r\n const flag = FeatureFlag[flagKey];\r\n if (!(flag in defaults)) {\r\n initialFlags[flag] = savedFlags[flag];\r\n }\r\n }\r\n\r\n window.featureFlags = initialFlags;\r\n\r\n this.persistFlags();\r\n }\r\n}\r\n","import { Container, FrameworkConfiguration } from 'aurelia-framework';\r\nimport { FeatureFlag as FeatureFlags } from 'feature-flags';\r\nimport { FeatureFlagService } from './feature-flags-service';\r\n\r\ninterface FeatureFlagsPluginConfiguration {\r\n defaultFlags?: Partial>;\r\n}\r\n\r\nexport function configure(config: FrameworkConfiguration, options: FeatureFlagsPluginConfiguration = {}) {\r\n const featureFlagService = config.container.get(FeatureFlagService);\r\n\r\n // Register handlers for feature flags\r\n for (const flagKey in FeatureFlags) {\r\n if (FeatureFlags.hasOwnProperty(flagKey)) {\r\n const flagIdentifier = FeatureFlags[flagKey];\r\n\r\n config.container.registerHandler(flagIdentifier, (container) => {\r\n return featureFlagService.enabled(flagIdentifier);\r\n });\r\n }\r\n }\r\n\r\n // Load default feature flags if provided\r\n if (options.defaultFlags) {\r\n featureFlagService.load(options.defaultFlags);\r\n }\r\n}\r\n\r\nexport function featureFlag(flagIdentifier: FeatureFlags) {\r\n return function (target: any, key: string) {\r\n const getter = function () {\r\n const flagService = Container.instance.get(FeatureFlagService);\r\n return flagService.enabled(flagIdentifier);\r\n };\r\n\r\n if (delete target[key]) {\r\n Object.defineProperty(target, key, {\r\n get: getter,\r\n enumerable: true,\r\n configurable: true,\r\n });\r\n }\r\n };\r\n}\r\n","type SequenceCallback = () => void;\r\n\r\nexport class KeyboardSequenceDetector {\r\n private sequences: Map = new Map();\r\n private listenerAttached = false;\r\n\r\n constructor() {\r\n // The constructor no longer automatically calls listenForKeySequence to allow for lazy loading\r\n }\r\n\r\n public registerSequence(label: string, keySequence: string[], callback: SequenceCallback): void {\r\n if (!this.listenerAttached) {\r\n this.listenForKeySequence();\r\n this.listenerAttached = true;\r\n }\r\n this.sequences.set(label, { sequence: keySequence, callback: callback, currentIndex: 0 });\r\n }\r\n\r\n public removeSequence(label: string): void {\r\n if (this.sequences.delete(label) && this.sequences.size === 0 && this.listenerAttached) {\r\n document.removeEventListener('keydown', this.handleKeydownBound);\r\n this.listenerAttached = false;\r\n }\r\n }\r\n\r\n private listenForKeySequence(): void {\r\n this.handleKeydownBound = this.handleKeydown.bind(this); // Store the bound function for removal\r\n document.addEventListener('keydown', this.handleKeydownBound);\r\n }\r\n\r\n private handleKeydownBound: (this: this, ev: KeyboardEvent) => any; // Define the type for the bound function\r\n\r\n private handleKeydown(event: KeyboardEvent): void {\r\n this.sequences.forEach((value, key) => {\r\n if (event.key === value.sequence[value.currentIndex]) {\r\n value.currentIndex++;\r\n\r\n if (value.currentIndex === value.sequence.length) {\r\n value.callback();\r\n value.currentIndex = 0; // Reset index to allow the sequence to be entered again.\r\n }\r\n } else {\r\n if (value.sequence.includes(event.key)) {\r\n value.currentIndex = 0; // Reset index if the sequence is broken.\r\n }\r\n }\r\n });\r\n }\r\n}\r\n\r\n// Usage\r\n// const detector = new KeyboardSequenceDetector();\r\n\r\n// // Register the Konami Code with a label\r\n// detector.registerSequence('konami', ['ArrowUp', 'ArrowUp', 'ArrowDown', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'ArrowLeft', 'ArrowRight', 'b', 'a'], () => {\r\n// console.log('Konami Code entered!');\r\n// // Trigger any action here\r\n// });\r\n\r\n// Remove the Konami Code sequence by its label\r\n// detector.removeSequence('konami');\r\n","/* istanbul ignore file */\r\n\r\nimport { EventAggregator } from 'aurelia-event-aggregator';\r\nimport { autoinject } from 'aurelia-dependency-injection';\r\nimport { Next, NavigationInstruction } from 'aurelia-router';\r\nimport { TaskQueue } from 'aurelia-framework';\r\nimport { PLATFORM } from 'aurelia-pal';\r\nimport { HttpClient } from 'aurelia-fetch-client';\r\nimport { getAppClientType, getAppClientInstance } from './parse-jwt';\r\n\r\n@autoinject()\r\nexport class PostRenderStep {\r\n constructor(private taskQueue: TaskQueue, private http: HttpClient, private ea: EventAggregator) {}\r\n\r\n async run(navigationInstruction: NavigationInstruction, next: Next) {\r\n this.taskQueue.queueMicroTask(() => {\r\n PLATFORM.global.scrollTo(0, 0);\r\n });\r\n\r\n if (!window.location.href.includes('localhost')) {\r\n const appClientType = getAppClientType();\r\n const appClientInstance = getAppClientInstance();\r\n const url = `/index_${appClientType.toLowerCase()}_${appClientInstance.toLowerCase()}.html`;\r\n\r\n await this.http\r\n .fetch(url, {\r\n method: 'HEAD',\r\n headers: {\r\n 'If-Modified-Since': localStorage.getItem('indexLastModified'),\r\n },\r\n })\r\n .then((response) => {\r\n if (response.headers.get('Last-modified')) {\r\n localStorage.setItem('indexLastModified', response.headers.get('Last-modified'));\r\n }\r\n\r\n if (response.status === 200) {\r\n this.ea.publish('promptForRefresh');\r\n }\r\n });\r\n }\r\n\r\n return next();\r\n }\r\n}\r\n","/* istanbul ignore file */\r\n\r\nimport { TaskNotificationTypes } from './enums';\r\nimport moment from 'moment';\r\n\r\nexport function prepareTasks(taskNotificationTypeId, tasks){\r\n switch (taskNotificationTypeId) {\r\n case TaskNotificationTypes.ALL:\r\n\r\n break;\r\n case TaskNotificationTypes.OVERDUE:\r\n tasks.forEach(x => {\r\n x.overdue=true;\r\n if(x.dueDate.split('T')[0] === moment().subtract('1', 'day').format('YYYY-MM-DD')){\r\n x.yesterday = true;\r\n x.dueDateLabel = 'Yesterday'\r\n }\r\n });\r\n break;\r\n case TaskNotificationTypes.DUE_TODAY:\r\n tasks.forEach(x => {\r\n x.duetoday=true;\r\n x.dueDateLabel = 'Today'\r\n });\r\n break;\r\n case TaskNotificationTypes.UPCOMING:\r\n tasks.forEach(x => {\r\n x.upcoming=true;\r\n\r\n if(x.dueDate.split('T')[0] === moment().add('1', 'day').format('YYYY-MM-DD')){\r\n x.tomorrow = true;\r\n x.dueDateLabel = 'Tomorrow'\r\n }\r\n });\r\n break;\r\n case TaskNotificationTypes.COMPLETE:\r\n tasks.forEach(x => {\r\n x.isCompletedTask=true;\r\n });\r\n // const result = (await response.json()).map(x => {\r\n // return {\r\n // isCompletedTask: true,\r\n // ...x, }\r\n // } );\r\n break;\r\n }\r\n\r\n return tasks;\r\n}\r\n","/* istanbul ignore file */\r\n\r\nexport class PreRenderStep {\r\n run(navigationInstruction, next) {\r\n const currentRoute = navigationInstruction.config;\r\n\r\n const currentRouteName = currentRoute.name;\r\n\r\n document.body.className = '';\r\n document.body.classList.add(`route--${currentRouteName}`);\r\n\r\n return next();\r\n }\r\n}\r\n","/* istanbul ignore file */\r\n\r\nexport function scrollIntoView(tableClassName, rowClassName = 'table-row-selected_') {\r\n setTimeout(() => {\r\n const tables = Array.from(document.querySelectorAll('table:not(.aurelia-hide)'));\r\n const table = tables.find((x) => x.className.includes(tableClassName)) as HTMLElement;\r\n if (table) {\r\n const tableRows = Array.from(table.querySelectorAll('tbody>tr'));\r\n const selectedTr = tableRows.find((x) => x.className.includes(rowClassName)) as HTMLElement;\r\n selectedTr?.scrollIntoView({ behavior: 'smooth', block: 'center' });\r\n }\r\n }, 0);\r\n}\r\n"],"names":["element","hideSinglePage","boundaryLinks","firstText","lastText","directionLinks","previousText","nextText","disable","totalPages","displayPages","this","bind","undefined","currentPage","pageSize","totalItemsChanged","calculatePages","pageSizeChanged","currentPageChanged","dispatchPageChangedEvent","event","DOM","bubbles","detail","dispatchEvent","totalItems","Math","ceil","isNaN","paginationSize","displayAllPages","limitVisiblePages","i","push","title","toString","value","totalTiers","activeTier","start","end","selectPage","page","nextPage","previousPage","firstPage","lastPage","inject","Element","bindable","defaultBindingMode","bindingMode","autoinject","AutPaginationCustomElement","auTable","bindingEngine","mode","selectedClass","custom","rowSelectedListener","handleRowSelected","attached","style","cursor","addEventListener","selectedSubscription","propertyObserver","row","subscribe","isSelectedChanged","setClass","detached","removeEventListener","dispose","$isSelected","classList","add","remove","target","srcElement","tagName","toLowerCase","dispatchSelectedEvent","selectedEvent","deselectAll","data","forEach","item","AureliaTableCustomAttribute","BindingEngine","AutSelectCustomAttribute","callback","order","orderClasses","ignoreEvent","handleHeaderClicked","sortChangedListener","handleSortChanged","key","Error","addSortChangedListener","handleDefault","removeSortChangedListener","default","doSort","dataSource","sortChanged","next","AutSortCustomAttribute","isAttached","sortChangedListeners","beforePagination","filterObservers","Array","isArray","dataObserver","collectionObserver","applyPlugins","filtersChanged","api","revealItem","filters","observer","filter","filterChanged","hasPagination","getDataCopy","concat","getPageData","localData","doPaginate","hasFilter","doFilter","sortKey","customSort","sortOrder","length","displayData","toFilter","filteredData","passed","passFilter","trim","keys","getPropertyValue","types","indexOf","toSort","sort","a","b","val1","val2","isNumeric","str1","str2","localeCompare","object","keyPath","replace","split","n","k","toCheck","parseFloat","isFinite","toPaginate","slice","dataChanged","emitSortChanged","removeListener","listener","listeners","index","splice","configure","config","globalResources","ensureFlagsInitialized","window","featureFlags","enabled","flag","persistFlags","localStorage","setItem","JSON","stringify","load","defaults","savedFlags","parse","getItem","initialFlags","flagKey","FeatureFlagService","options","featureFlagService","container","get","registerHandler","defaultFlags","featureFlag","flagIdentifier","Object","defineProperty","Container","enumerable","configurable","sequences","Map","listenerAttached","registerSequence","label","keySequence","listenForKeySequence","set","sequence","currentIndex","removeSequence","delete","size","document","handleKeydownBound","handleKeydown","includes","taskQueue","http","ea","run","navigationInstruction","queueMicroTask","location","href","appClientType","appClientInstance","url","fetch","method","headers","then","response","status","publish","TaskQueue","EventAggregator","PostRenderStep","prepareTasks","taskNotificationTypeId","tasks","x","overdue","dueDate","subtract","format","yesterday","dueDateLabel","duetoday","upcoming","tomorrow","isCompletedTask","currentRouteName","name","body","className","scrollIntoView","tableClassName","rowClassName","setTimeout","table","from","querySelectorAll","find","selectedTr","behavior","block"],"sourceRoot":""}